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();