var masterInfo = { mainIScroll:'', scrollDatas:{}, windowHeight:$(window).height(), rollAniList:[], parallaxList:[], fontAniList:[], mobile_move:false, counterStr:true, headerStyle:$('.header').is('.onWhite'), pageNumber:1, loadStr:true, rollArr:{ mainRoll:{ mainRollName:document.getElementById('main'), mainRollData: { speed:1,damping:.06, alwaysShowTracks:true, syncCallbacks:true }, }, textRoll:{ textRollName:document.getElementsByClassName('liTxt'), textRollData: { speed:1, damping:.04, alwaysShowTracks:true }, }, }, //初始化 init:function(){ //判断手机、pc masterInfo.mobile(); $(window).resize(function () { masterInfo.mobile(); }); //去除过 $('.transition_none').removeClass('transition_none'); //挂载器 masterInfo.loadRoll(); //MENU if($("#Hmenu_btn").length!=0 && masterInfo.mobile_move){ $(document).on('click','#Hmenu_btn',function(){ if($('.header').is('.mobileNav')){ $('.header').removeClass('mobileNav'); }else{ $('.header').addClass('mobileNav'); } }); //显示二级 let onLi = $('.header .nav .navlist>.nav_a.on'); if(onLi.length!=0){ if(onLi.children('.nav_b').length!=0){ let tooh = onLi.find('.nav_b_list').outerHeight(); onLi.children('.nav_b').height(tooh); } } $(document).on('click','.nav .nav_a',function(){ let is = $(this); if(is.children('.nav_b').length==0){ window.location.href = is.children('a').attr('href'); }else{ if(is.is('.on')){ is.removeClass('on').children('.nav_b').height(0); }else{ let tooh = is.find('.nav_b_list').outerHeight(); is.addClass('on').children('.nav_b').height(tooh).parents('.nav_a').siblings().removeClass('on').children('.nav_b').height(0); } } }); } //返回顶部 $(document).on('click','#backTopBtn',function(){ if(!masterInfo.mobile_move){ masterInfo.customScroll.scrollTo(0, 0, 1000); }else{ $('html,body').animate({scrollTop: 0},1000); } }); //底部二维码弹出 $(document).on('click','.fticon1',function(){ if($(this).parent().is('.on')){ $(this).parent().removeClass('on'); }else{ $(this).parent().addClass('on').siblings().removeClass('on'); } }); $(document).click(function(event){ var _con = $('.fticon1'); if(!_con.is(event.target) && _con.has(event.target).length === 0){ _con.parent().is('.on')?$('.ftnt ._btn ._item').removeClass('on'):''; } }); //企业文化 if($('#cultureswr').length!=0){ var cultureswr = new Swiper ('#cultureswr', { speed:600, loop:true, slidesPerView:2, navigation: { prevEl:'.cultureswr_prev>a', nextEl:'.cultureswr_next>a' }, breakpoints:{ 768:{ slidesPerView:3, } }, }); } //发展历程 if($('#courseswr').length!=0){ var courseswr = new Swiper ('#courseswr', { speed:600, loop:true, navigation: { prevEl:'.courseswr_prev>a', nextEl:'.courseswr_next>a' }, thumbs: { swiper: { el: '#courseTab', speed:600, grabCursor:true, slidesPerView:4, breakpoints:{ 1024:{ slidesPerView:10, }, 768:{ slidesPerView:7, } }, }, autoScrollOffset: 1, } }); } //资质荣誉 if($('#honorswr').length!=0){ const honorswr = new Swiper('#honorswr', { speed: 600, effect: 'coverflow', loop: true, centeredSlides: true, slidesPerView:1.72, autoplay: { delay:4000, stopOnLastSlide: false, disableOnInteraction: false, }, coverflowEffect: { rotate: 40, stretch: '35%', depth: 300, modifier: 1, slideShadows: false, }, breakpoints:{ 1440:{ slidesPerView:1.8, }, 1200:{ slidesPerView:1.78, }, 1024:{ slidesPerView:1.76, }, 768:{ slidesPerView:1.74, } }, on:{ slideChangeTransitionStart:function(){ $('.honor ._info ._list li').eq(this.realIndex).children().addClass('on').parent().siblings().children().removeClass('on'); } } }); $(document).on('click','.honor ._info ._list a',function(){ let i = $(this).parent().index(); honorswr.slideToLoop(i, 600, true); }); } //线条跟随 if($(".touchTab").length!=0){ let prevs = 0; let floatLeft = () => { let el = $(".touchTab ._item>a.on"),i = el.parent().index(); TweenLite.to($(".touchLine"), .5, { left:parseFloat(el.children('span')[0].offsetLeft), width:el.find('span').innerWidth() }); TweenLite.to($(".touchInfo>div"), .5, { height:$(".touchInfo ._item").eq(i).height() }); TweenLite.to($(".touchInfo ._item").eq(prevs), .5, { opacity:0, onComplete:function(){ $(".touchInfo ._item").eq(i).css('opacity',1).addClass('on').siblings().removeClass('on').css('opacity',0); prevs = el.parent().index(); } }); }; $(".touchTab ._item>a").on('click',function(){ let is = $(this); is.addClass('on').parent().siblings().children().removeClass('on'); floatLeft(); }); floatLeft(); } //地图创建 if($('#gaodemap').length!=0){ $.getScript("https://webapi.amap.com/maps?v=1.4.15&key=dedfdb033dd70e7c4c13a2445450b733",function(){ //地图描点 var map = new AMap.Map("gaodemap", { zoom: 15, center: [103.979819,30.482828], resizeEnable: true }); var mapSpot = `
`; var marker = new AMap.Marker({ position: [103.979819,30.482828], content: mapSpot, offset: new AMap.Pixel(-13, -30) }); map.add(marker); }); } //招聘 if($('#recruitList').length!=0){ $(document).on('click','#recruitList ._check',function(){ let is = $(this),el = is.next('._info').find('._txt'); if(is.is('.on')){ is.removeClass('on'); TweenLite.to(el, .5, { height:0 }); }else{ is.addClass('on').siblings('._check').removeClass('on'); TweenLite.to(is.siblings('._info').find('._txt'), .5, { height:0 }); TweenLite.to(el, .5, { height:el.children().outerHeight() }); } }); } masterInfo.search(); if($('.ptTab').length!=0){ let prevs = 0,onc = true; $(document).on('click','.ptTab ._item>a',function(){ if(onc){ onc = false; let i = $(this).parent().index(); $(this).parent().addClass('on').siblings().removeClass('on'); TweenLite.to($(".ptview").children().eq(prevs), 1,{ opacity:0, transform:'scale(0.3) translateX(-60%)', transformOrigin:'left', ease:Power1.easeInOut, onStart:()=>{ TweenLite.fromTo($(".ptview").children().eq(i), 1,{ opacity:0, transform:'scale(0.3) translateX(60%)', transformOrigin:'right', },{ opacity:1, transform:'scale(1) translateX(0%)', transformOrigin:'right', ease:Power1.easeInOut, onComplete:()=>{ $(".ptview").children().eq(i).addClass('on').siblings().removeClass('on'); prevs = i,onc = true; } }); } }); } }); } }, //监听mobile mobile:function(){ var screen_width = $(window).width(); //监听pc,移动端 if(screen_width <= 1024){ masterInfo.mobile_move = true; }else{ masterInfo.mobile_move = false; } }, getUrlParms:function(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null) return unescape(r[2]); return null; }, counters:function(){ var move = $(".counters"); $.each(move, function(i,k) { var is = $(this),numbers = {score:0},istime = $(this).data('time')?$(this).data('time'):2,isnumbermax = $(this).data('numbermax'); TweenLite.to(numbers,istime,{ score:isnumbermax, onUpdate:function(){ is.text(parseInt(numbers.score)); }, }); }); }, //parallax parallax:function(){ if(!masterInfo.mobile_move){ $(".parallax").each(function () { masterInfo.parallaxList.push({ offsetTop: $(this).offset().top, speed: $(this).data('speed'), direction:$(this).data('direction'), el: $(this).get(0) }); }); } }, search:function(){ var mainContainer = document.querySelector('#main'), openCtrl = document.getElementById('btn-search'), closeCtrl = document.getElementById('search-close'), searchContainer = document.querySelector('.search'), inputSearch = searchContainer.querySelector('.search_input'); openCtrl.addEventListener('click', openSearch); closeCtrl.addEventListener('click', closeSearch); document.addEventListener('keyup', function(ev) { if( ev.keyCode == 27 ) { closeSearch(); } }); function openSearch() { mainContainer.classList.add('main-wrap--move'); searchContainer.classList.add('search--open'); setTimeout(function() { inputSearch.focus(); }, 600); } function closeSearch() { mainContainer.classList.remove('main-wrap--move'); searchContainer.classList.remove('search--open'); inputSearch.blur(); inputSearch.value = ''; } }, fontEffect:function (elem) { var condition = ''; if (elem.getAttribute('data-word') == 1){ condition = ' '; } var array = elem.getAttribute('data-text').split(condition); var delay = elem.getAttribute('data-delay'); var effect = elem.getAttribute('data-effect') || 'fadeIn'; var widthE = elem.clientWidth; var thisI=0; if ($(elem).parents('.font_par').length != 0){ // console.log($(elem).index()); thisI = $(elem).index() } elem.innerHTML = ''; var Fragment = document.createDocumentFragment(); array.forEach(function (item,i) { var spanP = document.createElement("span"); var span = document.createElement("font"); span.className='animated'; span.classList.add(effect); if(delay){ span.style.animationDelay = delay * i + delay*thisI + 's'; }else{ span.style.animationDelay = 0.1 * i + 0.1*thisI + 's'; } span.innerText = item; if(span.textContent == ' ' || span.textContent == null || span.textContent == undefined){ span.innerHTML = ' '; } spanP.appendChild(span); Fragment.appendChild(spanP); }); elem.style.visibility = 'visible'; elem.appendChild(Fragment); }, scrollAjax:function(obj){ $.ajax({ type:"get", url:window.location.pathname+'index_'+masterInfo.pageNumber+'.html', dataType:"html", success:function(data){ var htmlList = $(data).find(obj).children('div'); if(htmlList.length!=0){ $(obj).append($(data).find(obj).html()); $(obj).find('._item').css('visibility','visible'); masterInfo.scrollDatas.pageLoadTop = $('.pageLoad').offset().top; masterInfo.loadStr = true; }else{ $('.pageLoad').addClass('not').children('.pageLoad_state').text('- end -') masterInfo.loadStr = false; } } }) }, //scrollView scrollView:function(){ var idName = window.location.href.split('#')[1]; if(idName && !masterInfo.mobile_move){ masterInfo.customScroll.scrollIntoView(document.getElementById(idName),{ offsetTop:80, }); } }, //rollAni rollAni:function(){ if(masterInfo.mobile_move){ $('.header').find('.rollAni').removeClass('rollAni'); } $(".rollAni").each(function () { $(this).get(0).classList.add('animated'); $(this).get(0).style.visibility = 'hidden'; $(this).data('delay')?$(this).get(0).style.animationDelay = $(this).data('delay')+'s':''; masterInfo.rollAniList.push({ offsetTop: $(this).offset().top, delay: $(this).data('delay'), inType:$(this).data('in'), el: $(this).get(0) }); if($(this).offset().top < ($(document).scrollTop() + masterInfo.windowHeight)){ setTimeout(() =>{ $(this).get(0).style.visibility = 'visible'; $(this).get(0).classList.add($(this).data('in')); },200); } }); $(".font_effect").each(function(i){ $(this).get(0).style.visibility = 'hidden'; masterInfo.fontAniList.push({ offsetTop: $(this).offset().top, el: $(this).get(0) }); if($(this).offset().top < ($(document).scrollTop() + masterInfo.windowHeight)){ setTimeout(() =>{ masterInfo.fontEffect($(this).get(0)); },200); } }); }, Ani:function(datas){ var _num = $('.counters'),topEl = $('.header'),hotFixed = $('#hotFixed'); if(masterInfo.fontAniList.length!=0 && !masterInfo.mobile_move){ masterInfo.fontAniList.forEach(function (el,index) { if(el.offsetTop + 120 < (datas.scrollY + masterInfo.windowHeight) && el.el.style.visibility == 'hidden'){ masterInfo.fontEffect(el.el); }else if(el.offsetTop >= (datas.scrollY + masterInfo.windowHeight) && el.el.style.visibility == 'visible'){ el.el.style.visibility = 'hidden'; } }); } if(masterInfo.rollAniList.length!=0 && !masterInfo.mobile_move){ masterInfo.rollAniList.forEach(function (el,index) { if(el.offsetTop + 120 < (datas.scrollY + masterInfo.windowHeight) && el.el.style.visibility == 'hidden'){ el.el.style.visibility = 'visible'; el.el.classList.add(el.inType); }else if(el.offsetTop >= (datas.scrollY + masterInfo.windowHeight) && el.el.style.visibility == 'visible'){ el.el.style.visibility = 'hidden'; el.el.classList.remove(el.inType); } }); } if(masterInfo.parallaxList.length!=0 && !masterInfo.mobile_move){ masterInfo.parallaxList.forEach(function (el) { var $scroll,$direction; if(el.direction == 'x'){ $scroll = Math.round((datas.scrollY - el.offsetTop) * el.speed); $direction = "translate3d("+$scroll+"px, 0px, 0px)"; }else if(el.direction == 'x,y'){ var $scroll1 = Math.round((datas.scrollY - el.offsetTop) * el.speed.split(',')[0]); var $scroll2 = Math.round((datas.scrollY - el.offsetTop) * el.speed.split(',')[1]); $direction = "translate3d("+$scroll1+"px, "+$scroll2+"px, 0px)"; }else{ $scroll = Math.round((datas.scrollY - el.offsetTop) * el.speed); $direction = "translate3d(0px, "+$scroll+"px, 0px)"; } el.el.style.transform = el.el.style.webkitTransform = $direction; }); } if(_num.length!=0){ if(datas.countersTop < (datas.scrollY + masterInfo.windowHeight) && masterInfo.counterStr == true){ masterInfo.counters(); masterInfo.counterStr = false; }else if(datas.countersTop >= (datas.scrollY + masterInfo.windowHeight)){ masterInfo.counterStr = true; } } if(!masterInfo.headerStyle && !masterInfo.mobile_move){ if(datas.scrollY > 0){ !$('.header').is('.onWhite')?$('.header').addClass('onWhite').attr('topstyle',1):''; }else{ $('.header').is('.onWhite')?$('.header').removeClass('onWhite').removeAttr('topstyle'):''; } }else{ $('.header').attr('topstyle',1); } if(hotFixed.length!=0 && !masterInfo.mobile_move){ if(datas.scrollY >= datas.hotFixed - 100){ if(datas.scrollY < datas.hotFixed + (hotFixed.outerHeight() - hotFixed.children().outerHeight()) - 100){ hotFixed.children()[0].style.transform = "translateY(" + (datas.scrollY - datas.hotFixed + 100) + "px)"; } }else{ hotFixed.children()[0].style.transform = 'translate3d(0px, 0px, 0px)'; } } if($("#masterList").length!=0){ if(datas.pageLoadTop < (datas.scrollY + masterInfo.windowHeight) && masterInfo.loadStr == true){ masterInfo.loadStr = false; setTimeout(() => { masterInfo.pageNumber++; masterInfo.scrollAjax('#masterList'); },200); } } }, //init loadRoll:function(){ var imgNum = 0,images = []; function preLoadImg() { var imgs = document.images; for (var i = 0; i < imgs.length; i++) { images.push(imgs[i].src); } var cssImages = getallBgimages(); for (var j = 0; j < cssImages.length; j++) { images.push(cssImages[j]); } // $.imgpreload(images,{ // each:function () { // //进度 // }, // all:function () { $('.pageLoad').length!=0?masterInfo.scrollDatas.pageLoadTop = $('.pageLoad').offset().top:''; if(!masterInfo.mobile_move){ masterInfo.particle(); masterInfo.rollAni(); masterInfo.parallax(); $('#counter').length!=0?masterInfo.scrollDatas.countersTop = $('#counter').offset().top:''; $('#hotFixed').length!=0?masterInfo.scrollDatas.hotFixed = $('#hotFixed').offset().top:''; $('#macks').length!=0?masterInfo.scrollDatas.macksTop = $('#macks').offset().top:''; masterInfo.customScroll = Scrollbar.init(masterInfo.rollArr.mainRoll.mainRollName, masterInfo.rollArr.mainRoll.mainRollData); masterInfo.scrollDatas.scrollY = masterInfo.customScroll.offset.y; masterInfo.customScroll.addListener(function (status) { masterInfo.scrollDatas.scrollY = status.offset.y; masterInfo.Ani(masterInfo.scrollDatas); }); masterInfo.scrollView(); window.addEventListener("hashchange", function(){ setTimeout(() => { masterInfo.scrollView(); },100); }); }else{ masterInfo.scrollDatas.scrollY = $(document).scrollTop(); window.addEventListener("scroll",function(doc) { masterInfo.scrollDatas.scrollY = $(document).scrollTop(); masterInfo.Ani(masterInfo.scrollDatas); },false); } if(!masterInfo.mobile_move && masterInfo.rollArr.textRoll.textRollName!=null){ $.each(masterInfo.rollArr.textRoll.textRollName, function() { Scrollbar.init($(this)[0],masterInfo.rollArr.textRoll.textRolldata); }); } masterInfo.Hbanner(); // } // }); } function getallBgimages() { var url, B = [], A = document.getElementsByTagName('*'); A = B.slice.call(A, 0, A.length); while (A.length) { url = document.deepCss(A.shift(), 'background-image'); if (url) url = /url\(['"]?([^")]+)/.exec(url) || []; url = url[1]; if (url && B.indexOf(url) == -1) B[B.length] = url; } return B; } document.deepCss = function (who, css) { if (!who || !who.style) return ''; var sty = css.replace(/\-([a-z])/g, function (a, b) { return b.toUpperCase(); }); if (who.currentStyle) { return who.style[sty] || who.currentStyle[sty] || ''; } var dv = document.defaultView || window; return who.style[sty] || dv.getComputedStyle(who, "").getPropertyValue(css) || ''; } Array.prototype.indexOf = Array.prototype.indexOf || function (what, index) { index = index || 0; var L = this.length; while (index < L) { if (this[index] === what) return index; ++index; } return -1; } preLoadImg(); }, //首页banner Hbanner:function(){ if($('#Hbanner').length!=0){ var Hbanner = new Swiper ('#Hbanner', { speed:600, autoplay: { delay:5000, stopOnLastSlide: false, disableOnInteraction: false, }, effect: 'fade', slideActiveClass: 'active', watchSlidesProgress: true, watchSlidesVisibility: true, followFinger:false, navigation: { prevEl:'#HbannerPrev', nextEl:'#HbannerNext' }, on:{ init:function(){ setTimeout(() => { this.slides.eq(0).find('._info').addClass('on'); },600); } } }); Hbanner.on('slideChangeTransitionEnd', function () { this.slides.find('._info').removeClass('on'); this.slides.eq(this.activeIndex).find('._info').addClass('on'); }); } }, particle:function(){ if($('.particleCanvas').length>0){ var SEPARATION = 100, AMOUNTX = 50, AMOUNTY = 50; var container; var camera, scene, renderer; var particles, particle, count = 0; var mouseX = 0, mouseY = 0; var windowHalfX = window.innerWidth / 2; var windowHalfY = window.innerHeight / 2; init(); animate(); function init() { container = $('.particleCanvas').get(0); camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 5000); camera.position.z = 1000; scene = new THREE.Scene(); particles = new Array(); var PI2 = Math.PI * 2; var material = new THREE.ParticleCanvasMaterial( { color: '#c6cfe1', program: function ( context ) { context.beginPath(); context.arc( 0, 0, 1, 0, PI2, true ); context.fill(); } }); var i = 0; for ( var ix = 0; ix < AMOUNTX; ix ++ ) { for ( var iy = 0; iy < AMOUNTY; iy ++ ) { particle = particles[ i ++ ] = new THREE.Particle( material ); particle.position.x = ix * SEPARATION - ( ( AMOUNTX * SEPARATION ) / 2 ); particle.position.z = iy * SEPARATION - ( ( AMOUNTY * SEPARATION ) / 2 ); scene.add( particle ); } } renderer = new THREE.CanvasRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); container.appendChild( renderer.domElement ); //document.addEventListener( 'mousemove', onDocumentMouseMove, false ); //document.addEventListener( 'touchstart', onDocumentTouchStart, false ); //document.addEventListener( 'touchmove', onDocumentTouchMove, false ); // window.addEventListener( 'resize', onWindowResize, false ); } function onWindowResize() { windowHalfX = window.innerWidth / 2; windowHalfY = window.innerHeight / 2; camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize( window.innerWidth, window.innerHeight ); } function onDocumentMouseMove( event ) { mouseX = event.clientX - windowHalfX; mouseY = event.clientY - windowHalfY; } function onDocumentTouchStart( event ) { if ( event.touches.length === 1 ) { event.preventDefault(); mouseX = event.touches[ 0 ].pageX - windowHalfX; mouseY = event.touches[ 0 ].pageY - windowHalfY; } } function onDocumentTouchMove( event ) { if ( event.touches.length === 1 ) { event.preventDefault(); mouseX = event.touches[ 0 ].pageX - windowHalfX; mouseY = event.touches[ 0 ].pageY - windowHalfY; } } function animate() { requestAnimationFrame( animate ); render(); } function render() { camera.position.x += ( mouseX - camera.position.x ) * 0.05; //camera.position.y += ( - mouseY - camera.position.y ) * 0.05; camera.position.y=200; camera.lookAt( scene.position ); var i = 0; for ( var ix = 0; ix < AMOUNTX; ix ++ ) { for ( var iy = 0; iy < AMOUNTY; iy ++ ) { particle = particles[ i++ ]; particle.position.y = ( Math.sin( ( ix + count ) * 0.3 ) * 50 ) + ( Math.sin( ( iy + count ) * 0.5 ) * 50 ); particle.scale.x = particle.scale.y = ( Math.sin( ( ix + count ) * 0.3 ) + 1 ) * 2 + ( Math.sin( ( iy + count ) * 0.5 ) + 1 ) * 2; } } renderer.render( scene, camera ); count += 0.1; } } } } masterInfo.init();