2019中国国际金融展将于11月4-6日在深圳会展中心举行。作为专注于企业级安全、云计算和基础架构的产品和服务供应商,深信服受邀参展。
    本届大会,深信服将携基于SD-WAN的金融分支安全组网、金融数据中心安全、金融终端和接入安全、等级保护2.0、云数据中心建设、金融网点等多场景解决方案重磅亮相,更有前沿桌面云技术现场亲身体验。深信服将通过创新技术与场景方案,推动网络安全、云计算、移动互联等新兴技术与金融业务应用深度融合,助力金融行业数字化转型 。
展区风采
创新方案
互动体验
参会指南
大会报名
日程安排
旅行推荐
更多资讯

// Native Javascript for Bootstrap Global Object BSN = globalObject.BSN = {}, supports = BSN.supports = [], // function toggle attributes dataToggle = 'data-toggle', dataDismiss = 'data-dismiss', dataSpy = 'data-spy', dataRide = 'data-ride', // components stringCarousel = 'Carousel', // options DATA API databackdrop = 'data-backdrop', dataKeyboard = 'data-keyboard', dataTarget = 'data-target', dataInterval = 'data-interval', dataHeight = 'data-height', dataPause = 'data-pause', dataTitle = 'data-title', dataOriginalTitle = 'data-original-title', dataOriginalText = 'data-original-text', dataDismissible = 'data-dismissible', dataTrigger = 'data-trigger', dataAnimation = 'data-animation', dataContainer = 'data-container', dataPlacement = 'data-placement', dataDelay = 'data-delay', dataOffsetTop = 'data-offset-top', dataOffsetBottom = 'data-offset-bottom', dataIndicatorColor = 'data-indicator-color', // CNote: custom code // option keys backdrop = 'backdrop', keyboard = 'keyboard', delay = 'delay', content = 'content', target = 'target', interval = 'interval', pause = 'pause', animation = 'animation', placement = 'placement', container = 'container', // box model offsetTop = 'offsetTop', offsetBottom = 'offsetBottom', offsetLeft = 'offsetLeft', scrollTop = 'scrollTop', scrollLeft = 'scrollLeft', clientWidth = 'clientWidth', clientHeight = 'clientHeight', offsetWidth = 'offsetWidth', offsetHeight = 'offsetHeight', innerWidth = 'innerWidth', innerHeight = 'innerHeight', scrollHeight = 'scrollHeight', height = 'height', // aria ariaExpanded = 'aria-expanded', ariaHidden = 'aria-hidden', // event names clickEvent = 'click', hoverEvent = 'hover', keydownEvent = 'keydown', keyupEvent = 'keyup', resizeEvent = 'resize', scrollEvent = 'scroll', // originalEvents showEvent = 'show', shownEvent = 'shown', hideEvent = 'hide', hiddenEvent = 'hidden', closeEvent = 'close', closedEvent = 'closed', slidEvent = 'slid', slideEvent = 'slide', changeEvent = 'change', // other getAttribute = 'getAttribute', setAttribute = 'setAttribute', hasAttribute = 'hasAttribute', createElement = 'createElement', appendChild = 'appendChild', innerHTML = 'innerHTML', getElementsByTagName = 'getElementsByTagName', preventDefault = 'preventDefault', getBoundingClientRect = 'getBoundingClientRect', querySelectorAll = 'querySelectorAll', getElementsByCLASSNAME = 'getElementsByClassName', getComputedStyle = 'getComputedStyle', indexOf = 'indexOf', parentNode = 'parentNode', length = 'length', toLowerCase = 'toLowerCase', Transition = 'Transition', Duration = 'Duration', Webkit = 'Webkit', style = 'style', push = 'push', tabindex = 'tabindex', contains = 'contains', active = 'active', inClass = 'in', collapsing = 'collapsing', disabled = 'disabled', loading = 'loading', left = 'left', right = 'right', top = 'top', bottom = 'bottom', // IE8 browser detect isIE8 = !('opacity' in HTML[style]), // tooltip / popover mouseHover = ('onmouseleave' in DOC) ? [ 'mouseenter', 'mouseleave'] : [ 'mouseover', 'mouseout' ], tipPositions = /(top|bottom|left|right)+/, // modal modalOverlay = 0, fixedTop = 'navbar-fixed-top', fixedBottom = 'navbar-fixed-bottom', // transitionEnd since 2.0.4 supportTransitions = Webkit+Transition in HTML[style] || Transition[toLowerCase]() in HTML[style], transitionEndEvent = Webkit+Transition in HTML[style] ? Webkit[toLowerCase]()+Transition+'End' : Transition[toLowerCase]()+'end', transitionDuration = Webkit+Duration in HTML[style] ? Webkit[toLowerCase]()+Transition+Duration : Transition[toLowerCase]()+Duration, // set new focus element since 2.0.3 setFocus = function(element){ element.focus ? element.focus() : element.setActive(); }, // class manipulation, since 2.0.0 requires polyfill.js addClass = function(element,classNAME) { element.classList.add(classNAME); }, removeClass = function(element,classNAME) { element.classList.remove(classNAME); }, hasClass = function(element,classNAME){ // since 2.0.0 return element.classList[contains](classNAME); }, // selection methods nodeListToArray = function(nodeList){ var childItems = []; for (var i = 0, nll = nodeList[length]; i= windowWidth, halfBottomExceed = rect[top] + elementDimensions.h/2 + linkDimensions.h/2 >= windowHeight, topExceed = rect[top] - elementDimensions.h < 0, leftExceed = rect[left] - elementDimensions.w < 0, bottomExceed = rect[top] + elementDimensions.h + linkDimensions.h >= windowHeight, rightExceed = rect[left] + elementDimensions.w + linkDimensions.w >= windowWidth; // recompute position position = (position === left || position === right) && leftExceed && rightExceed ? top : position; // first, when both left and right limits are exceeded, we fall back to top|bottom position = position === top && topExceed ? bottom : position; position = position === bottom && bottomExceed ? top : position; position = position === left && leftExceed ? right : position; position = position === right && rightExceed ? left : position; // apply styling to tooltip or popover if ( position === left || position === right ) { // secondary|side positions if ( position === left ) { // LEFT leftPosition = rect[left] + scroll.x - elementDimensions.w; } else { // RIGHT leftPosition = rect[left] + scroll.x + linkDimensions.w; } // adjust top and arrow if (halfTopExceed) { topPosition = rect[top] + scroll.y; arrowTop = linkDimensions.h/2; } else if (halfBottomExceed) { topPosition = rect[top] + scroll.y - elementDimensions.h + linkDimensions.h; arrowTop = elementDimensions.h - linkDimensions.h/2; } else { topPosition = rect[top] + scroll.y - elementDimensions.h/2 + linkDimensions.h/2; } } else if ( position === top || position === bottom ) { // primary|vertical positions if ( position === top) { // TOP topPosition = rect[top] + scroll.y - elementDimensions.h; } else { // BOTTOM topPosition = rect[top] + scroll.y + linkDimensions.h; } // adjust left | right and also the arrow if (halfLeftExceed) { leftPosition = 0; arrowLeft = rect[left] + linkDimensions.w/2; } else if (halfRightExceed) { leftPosition = windowWidth - elementDimensions.w*1.01; arrowLeft = elementDimensions.w - ( windowWidth - rect[left] ) + linkDimensions.w/2; } else { leftPosition = rect[left] + scroll.x - elementDimensions.w/2 + linkDimensions.w/2; } } // apply style to tooltip/popover and it's arrow element[style][top] = topPosition + 'px'; element[style][left] = leftPosition + 'px'; arrowTop && (arrow[style][top] = arrowTop + 'px'); arrowLeft && (arrow[style][left] = arrowLeft + 'px'); element.className[indexOf](position) === -1 && (element.className = element.className.replace(tipPositions,position)); }; BSN.version = '2.0.23'; /* Native Javascript for Bootstrap 3 | Carousel ----------------------------------------------*/ // CAROUSEL DEFINITION // =================== var Carousel = function( element, options ) { // initialization element element = queryElement( element ); // set options options = options || {}; // DATA API var intervalAttribute = element[getAttribute](dataInterval) ? element[getAttribute](dataInterval) : 5000, // bootstrap carousel default interval intervalOption = options[interval], intervalData = intervalAttribute === 'false' ? 0 : parseInt(intervalAttribute), pauseData = element[getAttribute](dataPause) === hoverEvent || false, keyboardData = element[getAttribute](dataKeyboard) === 'true' || false, indicatorColor = element[getAttribute](dataIndicatorColor), // strings component = 'carousel', paused = 'paused', direction = 'direction', dataSlideTo = 'data-slide-to'; this[keyboard] = options[keyboard] === true || keyboardData; this[pause] = (options[pause] === hoverEvent || pauseData) ? hoverEvent : false; // false / hover this[interval] = typeof intervalOption === 'number' ? intervalOption : intervalOption === false || intervalData === 0 || intervalData === false ? 0 : intervalData; // bind, event targets var self = this, index = element.index = 0, timer = element.timer = 0, isSliding = false, // isSliding prevents click event handlers when animation is running slides = getElementsByClassName(element,'item'), total = slides[length], slideDirection = this[direction] = left, controls = getElementsByClassName(element,component+'-control'), leftArrow = controls[0], rightArrow = controls[1], indicator = queryElement( '.'+component+'-indicators', element ), indicators = indicator && indicator[getElementsByTagName]( 'LI' ) || []; // handlers var pauseHandler = function () { if ( self[interval] !==false && !hasClass(element,paused) ) { addClass(element,paused); !isSliding && ( clearInterval(timer), timer = null ); } }, resumeHandler = function() { if ( self[interval] !== false && hasClass(element,paused) ) { removeClass(element,paused); !isSliding && ( clearInterval(timer), timer = null ); !isSliding && self.cycle(); } }, indicatorHandler = function(e) { e[preventDefault](); if (isSliding) return; var eventTarget = e[target]; // event target | the current active item if ( eventTarget && !hasClass(eventTarget,active) && eventTarget[getAttribute](dataSlideTo) ) { index = parseInt( eventTarget[getAttribute](dataSlideTo), 10 ); } else { return false; } self.slideTo( index ); //Do the slide }, controlsHandler = function (e) { e[preventDefault](); if (isSliding) return; var eventTarget = e.currentTarget || e.srcElement; if ( eventTarget === rightArrow ) { index++; } else if ( eventTarget === leftArrow ) { index--; } self.slideTo( index ); //Do the slide }, keyHandler = function (e) { if (isSliding) return; switch (e.which) { case 39: index++; break; case 37: index--; break; default: return; } self.slideTo( index ); //Do the slide }, // private methods isElementInScrollRange = function () { var rect = element[getBoundingClientRect](), viewportHeight = globalObject[innerHeight] || HTML[clientHeight]; return rect[top] <= viewportHeight && rect[bottom] >= 0; // bottom && top }, setActivePage = function( pageIndex ) { //indicators for ( var i = 0, icl = indicators[length]; i < icl; i++ ) { removeClass(indicators[i],active); // CNote: custom code indicators[i].style.backgroundColor = 'transparent'; } if (indicators[pageIndex]) { addClass(indicators[pageIndex], active); // CNote: custom code indicators[pageIndex].style.backgroundColor = indicatorColor; } }; // public methods this.cycle = function() { // CNote: this lib has this flaw, calling cycle manually would // trigger infinit loop so need clear it if a timer exists if (timer) { clearInterval(timer); timer = null; } timer = setInterval(function() { isElementInScrollRange() && (index++, self.slideTo( index ) ); }, this[interval]); }; this.slideTo = function( next ) { if (isSliding) return; // when controled via methods, make sure to check again var activeItem = this.getActiveIndex(), // the current active orientation; // determine slideDirection first if ( (activeItem < next ) || (activeItem === 0 && next === total -1 ) ) { slideDirection = self[direction] = left; // next } else if ( (activeItem > next) || (activeItem === total - 1 && next === 0 ) ) { slideDirection = self[direction] = right; // prev } // find the right next index if ( next < 0 ) { next = total - 1; } else if ( next >= total ){ next = 0; } // update index index = next; orientation = slideDirection === left ? 'next' : 'prev'; //determine type bootstrapCustomEvent.call(element, slideEvent, component, slides[next]); // here we go with the slide isSliding = true; clearInterval(timer); timer = null; setActivePage( next ); if ( supportTransitions && hasClass(element,'slide') ) { addClass(slides[next],orientation); slides[next][offsetWidth]; addClass(slides[next],slideDirection); addClass(slides[activeItem],slideDirection); one(slides[next], transitionEndEvent, function(e) { var timeout = e[target] !== slides[next] ? e.elapsedTime*1000+100 : 20; isSliding && setTimeout(function(){ isSliding = false; addClass(slides[next],active); removeClass(slides[activeItem],active); removeClass(slides[next],orientation); removeClass(slides[next],slideDirection); removeClass(slides[activeItem],slideDirection); bootstrapCustomEvent.call(element, slidEvent, component, slides[next]); if ( self[interval] && !hasClass(element,paused) ) { self.cycle(); } }, timeout); }); } else { addClass(slides[next],active); slides[next][offsetWidth]; removeClass(slides[activeItem],active); setTimeout(function() { isSliding = false; if ( self[interval] && !hasClass(element,paused) ) { self.cycle(); } bootstrapCustomEvent.call(element, slidEvent, component, slides[next]); // here we go with the slid event }, 100 ); } }; this.getActiveIndex = function () { return slides[indexOf](getElementsByClassName(element,'item active')[0]) || 0; }; // init if ( !(stringCarousel in element ) ) { // prevent adding event handlers twice if ( self[pause] && self[interval] ) { on( element, mouseHover[0], pauseHandler ); on( element, mouseHover[1], resumeHandler ); on( element, 'touchstart', pauseHandler ); on( element, 'touchend', resumeHandler ); } rightArrow && on( rightArrow, clickEvent, controlsHandler ); leftArrow && on( leftArrow, clickEvent, controlsHandler ); indicator && on( indicator, clickEvent, indicatorHandler ); self[keyboard] && on( globalObject, keydownEvent, keyHandler ); } if (self.getActiveIndex()<0) { slides[length] && addClass(slides[0],active); indicators[length] && setActivePage(0); } if ( self[interval] ){ self.cycle(); } element[stringCarousel] = self; }; // CAROUSEL DATA API // ================= supports[push]( [ stringCarousel, Carousel, '['+dataRide+'="carousel"]' ] ); /* Native Javascript for Bootstrap 3 | Initialize Data API --------------------------------------------------------*/ var initializeDataAPI = function( constructor, collection ){ for (var i = 0, l = collection[length]; i < l; i++) { new constructor(collection[i]); } }, initCallback = BSN.initCallback = function(lookUp){ lookUp = lookUp || DOC; for (var i = 0, l = supports[length]; i < l; i++) { initializeDataAPI( supports[i][1], lookUp[querySelectorAll] (supports[i][2]) ); } }; // bulk initialize all components DOC[body] ? initCallback() : on( DOC, 'DOMContentLoaded', function(){ initCallback(); } ); return { Carousel: Carousel }; })); 美娱彩票平台 优盛彩票平台 2m彩票平台 汇盈彩票平台 608彩票平台 壹玖玖彩票平台 大奖网彩票平台 928彩票平台 大福彩票 易点彩票平台