diff --git a/src/js/layout.js b/src/js/layout.js new file mode 100644 index 0000000..c5d47e2 --- /dev/null +++ b/src/js/layout.js @@ -0,0 +1,1504 @@ + + +$(function(){ + + // function rem(){ + // !function(n){ + // var e=n.document, + // t=e.documentElement, + // i=1920, + // d=i/100, + // o="orientationchange"in n?"orientationchange":"resize", + // a=function(){ + // if($(window).innerWidth() > 1920){ + // $('html').removeAttr('style'); + // } else { + // var n=t.clientWidth||320;n>1920&&(n=1920); + // t.style.fontSize=n/d+"px" + // } + // }; + // e.addEventListener&&(n.addEventListener(o,a,!1),e.addEventListener("DOMContentLoaded",a,!1)) + // }(window); + // } + + // rem(); + + // 防抖方法 + function AntiShake(fn,wait){ + var timer = null; + return function(){ + if(timer !== null){ + clearTimeout(timer); + } + timer = setTimeout(fn,wait); + }; + } + + AntiShake(onResize, 200); + $(window).resize(AntiShake(onResize, 100)); + + AntiShake(onScroll, 200); + $(window).scroll(AntiShake(onScroll, 100)); + + //wow调用 + if (typeof WOW != 'undefined') { + var wow = new WOW({ + boxClass: 'wow', + animateClass: 'animated', + offset: 0, + mobile: true, + live: true + }); + wow.init(); + } + + //弹出视频播放器 + $('.videoBtn').on('click',function(){ + var url = $(this).attr('rel'); + if(url.indexOf('http') == 0){ + $('.videoPlayer').html(''); + } else { + $('.videoPlayer').html(''); + } + $('.PopupVideoBox').fadeIn(200); + }); + + //关闭弹出播放器 + $('.closeVideo').on('click', function(){ + $('.PopupVideoBox').fadeOut(200); + $('.videoPlayer').html(''); + }); + + + //swiper方法调用 + if(typeof Swiper != 'undefined') { + //首页banner + var defaBanner = new Swiper('.defaBanner', { + paginationClickable: true, + loop:true, + autoplay:4500, + autoplayDisableOnInteraction : false, + nextButton: '.defaBannerNext', + prevButton: '.defaBannerPrev', + pagination : '.defaBannerdot', + onInit: function(swiper){ + + }, + onTransitionEnd: function(swiper){ + + } + }); + //二级栏目适应内容区 + var defaSecondLevelColumn = new Swiper('.defaSecondLevelColumn', { + paginationClickable: true, + slidesPerView:"auto", + spaceBetween:0, + autoplayDisableOnInteraction : false, + }); + } + + // 页面监听窗口 + function onResize(){ + if($(window).innerWidth() > 1259){ + $('html').removeClass('hideScroll'); + $('.defaSearch span').removeClass('closeSearchbox'); + $('.defanav ul li p, .defanav, .defaSearchbox,.defaLanguage p').removeAttr('style'); + } + } + + //滚动条监听 + function onScroll(){ + var scrollTop = $(window).scrollTop(); + if(scrollTop > $('.header').height()){ + $('.defaheader').addClass('defaheaderbg'); + } else { + $('.defaheader').removeClass('defaheaderbg'); + } + } + + //其他事件 + + $('.defaheader').hover(function(){ + $(this).addClass('defaheaderbg'); + },function(){ + if($(window).scrollTop() < $('.defaheader').height()){ + $(this).removeClass('defaheaderbg'); + } + }); + + $('.defanav ul li i').on('click',function(){ + if($(this).next().is(':hidden')){ + $(this).parent().siblings().find('p').slideUp(200); + $(this).parent().siblings().removeClass('cur'); + $(this).next().slideDown(200); + $(this).parent().addClass('cur'); + + } else { + $(this).next().slideUp(200); + $(this).parent().removeClass('cur'); + } + }); + + $('.defanavbtn').on('click',function(){ + if($('.defanav').is(':hidden')){ + $(this).addClass('defacloseNavbtn'); + $('.defanav').slideDown(200); + $('html').addClass('hideScroll'); + $('.defaSearchbox').hide(); + $('.defaSearch span').removeClass('closeSearchbox'); + $('.defaLanguage p').hide(); + } else { + $(this).removeClass('defacloseNavbtn'); + $('.defanav').slideUp(200); + $('html').removeClass('hideScroll'); + } + }); + + $('.defaSearch span').on('click', function(){ + if(window.innerWidth < 1260){ + if($(this).next().is(':hidden')){ + $(this).addClass('closeSearchbox'); + $(this).next().slideDown(200); + $('.defanav').hide(); + $('.defanavbtn').removeClass('defacloseNavbtn'); + $('.defaLanguage p').hide(); + } else { + $(this).removeClass('closeSearchbox'); + $(this).next().slideUp(200); + } + } + }); + + $('.defaLanguage span').on('click', function(){ + if(window.innerWidth < 1260){ + if($(this).next().is(':hidden')){ + $(this).addClass('closeSearchbox'); + $(this).next().slideDown(200); + $('.defanav').hide(); + $('.defanavbtn').removeClass('defacloseNavbtn'); + $('.defaSearchbox').hide(); + $('.defaSearch span').removeClass('closeSearchbox'); + } else { + $(this).removeClass('closeSearchbox'); + $(this).next().slideUp(200); + } + } + }); + + // //省市区选择器 + // if (returnCitySN) { + // $('#ThreeLevelLinkage').citys({ + // code: returnCitySN['cid'], + // crossDomain: true, + // province:440000, + // city:440300, + // area:440304, + // }); + // $('.ChooseCity').select2({ + // language: { + // noResults: function(params) { + // return "暂无数据"; + // } + // }, + // minimumResultsForSearch: Infinity + // }); + // } + + // //单项选择器 + // $('.individual').select2({ + // language: { + // noResults: function(params) { + // return "暂无数据"; + // } + // }, + // minimumResultsForSearch: Infinity + // }); + + if ($("#grid").length > 0) { + int(); + function int(){ + new AnimOnScroll(document.getElementById('grid'), { + minDuration: 0.4, + maxDuration: 0.7, + viewportFactor: 0.2 + }); + } + $('.WaterfallFlowMore').on('click',function(){ + var html = '
  • 2020.10.13

    1从路人甲到C位咖,完美就要这么“妆”!

    作为社会人,每个人都要与他人往来和接触,总有见一面的时候,总会产生或好或坏的第一印象,就第一印象而言,谁都只有一次机会...

  • 2020.10.13

    2从路人甲到C位咖,完美就要这么“妆”!

    作为社会人,每个人都要与他人往来和接触,总有见一面的时候,总会产生或好或坏的第一印象,就第一印象而言,谁都只有一次机会...

  • '; + $('.WaterfallFlow ul').append(html); + int(); + }); + } + +}); +// !function(n){ +// var e=n.document, +// t=e.documentElement, +// i=1920, +// d=i/100, +// o="orientationchange"in n?"orientationchange":"resize", +// a=function(){ +// var n = t.clientWidth || 320; +// //n < 992 && (n = n * 2); +// if(n>=1260){ +// t.style.fontSize=n/d+"px"; +// }else{ +// t.style.fontSize="100px"; +// } + +// $('.main').css({'visibility':'visible'}); +// }; +// e.addEventListener&&(n.addEventListener(o,a,!1),e.addEventListener("DOMContentLoaded",a,!1)) +// }(window); +$(function () { + //swiper方法调用 + if (typeof Swiper != 'undefined') { + + var index_swiper = new Swiper('.index_swiper', { + speed: 600, + autoplay: 6000, + autoplayDisableOnInteraction: false, + paginationClickable: true, + pagination: '.insw_pagination', + noSwiping: true, + loop:true, + prevButton: '.index_prev', + nextButton: '.index_next', + autoHeight: true, + onInit: function (swiper) { + TVideo(swiper); + }, + onSlideChangeEnd: function (swiper) { + TVideo(swiper); + } + }); + + function TVideo(abj) { + + var Video = $(".index_swiper .swiper-slide-active video").get(0) + if ($(".index_swiper .swiper-slide-active").find("video").length > 0) { + Video.play(); + abj.stopAutoplay(); + Video.addEventListener('ended', function () { + abj.startAutoplay(); + }) + } + } + + $(".swiper_off i").click(function () { + if ($(this).hasClass("cur")) { + $(this).removeClass("cur") + index_swiper.startAutoplay(); + $(this).addClass("icon_stop").removeClass("icon_bofang2"); + } else { + $(this).addClass("cur") + index_swiper.stopAutoplay(); + $(this).addClass("icon_bofang2").removeClass("icon_stop"); + } + }); + var inproduct_swiper = new Swiper('.inproduct_swiper', { + speed: 600, + // pagination: '.inpro_pagination', + scrollbarDraggable: true, + paginationType: 'progress', + slidesPerView: 2, + slidesPerColumn: 2, + paginationClickable: true, + scrollbar: '.inproduct_scrollbar', + scrollbarHide: false, + spaceBetween: 60, + breakpoints: { + 1600:{ + spaceBetween: 30, + }, + 992: { + spaceBetween: 20, + }, + 580: { + spaceBetween: 10, + slidesPerView: 1, + } + } + }); + + // var purpose_tabSwiper3; + var purpose_swiper; + // purpose_tabSwiper3 = new Swiper('.purpose_tabSwiper3', { + // slidesPerView:8, + // spaceBetween: 30, + // breakpoints:{ + // 992: { + // spaceBetween: 5, + // }, + // 765: { + // slidesPerView: 3, + // }, + // 465: { + // slidesPerView:2, + // }, + // } + // }); + + // purpose_contswiper = new Swiper('.purpose_contswiper', { + // speed: 600, + // onSlideChangeStart: function (swiper) { + // purpose_swiper.slideTo(swiper.activeIndex, 1000, false); + // $(".purpose_tab .swiper-slide").eq(swiper.activeIndex).addClass("active").siblings().removeClass("active"); + // purpose_tabSwiper3.slideTo(swiper.activeIndex, 1000, false); + + // } + // }); + purpose_swiper = new Swiper('.purpose_swiper', { + speed: 600, + onSlideChangeStart: function (swiper) { + // purpose_contswiper.slideTo(swiper.activeIndex, 1000, false); + $(".purpose_tab .item").eq(swiper.activeIndex).addClass("active").siblings().removeClass("active"); + // purpose_tabSwiper3.slideTo(swiper.activeIndex, 1000, false); + $(".home3TabItem").eq(swiper.activeIndex).show().addClass("active").siblings().hide().removeClass("active"); + } + + }); + + + + $(".home3TabItem").eq(0).show(); + $(".purpose_tab .item").click(function () { + var index = $(this).index(); + $(this).addClass("active").siblings().removeClass("active"); + $(".home3TabItem").eq(index).show().addClass("active").siblings().hide().removeClass("active"); + purpose_swiper.slideTo(index, 1000, false); + }); + $(".purpose_prev").click(function () { + purpose_swiper.slidePrev(); + }); + $(".purpose_next").click(function () { + purpose_swiper.slideNext(); + }); + var incase_swiper1 = new Swiper('.incase_swiper1', { + speed: 600, + onSlideChangeStart: function (swiper) { + $(".incase_tablist .item").eq(swiper.activeIndex).addClass("active").siblings().removeClass("active"); + } + }); + var incase_swiper2 = new Swiper('.incase_swiper2', { + speed: 600, + observer:true, + observeParents:true, + onSlideChangeStart: function (swiper) { + $(".incase_tablist .item").eq(swiper.activeIndex).addClass("active").siblings().removeClass("active"); + } + }); + + $(".incase_tablist .item").hover(function () { + var index = $(this).index(); + $(this).addClass("active").siblings().removeClass("active") + if ($(".incase_swiper").length > 1) { + incase_swiper1.slideTo(index, 1000, false); + incase_swiper2.slideTo(index, 1000, false); + } + }); + + } + + $(".hsearch_btn").click(function () { + if (!$(this).hasClass("active")) { + $(this).addClass("active") + $("#search-form").css({ + "max-height": "60px" + }); + } else { + $(this).removeClass("active") + $("#search-form").css({ + "max-height": "0" + }); + } + }); + + + $(window).scroll(function () { + scrollEvent(); + var TopLi = $(window).scrollTop() + 300 + $(".Solution_XQ .box").each(function(){ + var num = $(this).index() + var _this = $(this).offset().top + if(TopLi >= _this){ + $(".AnchorLocation .con .li").eq(num).addClass("active").siblings().removeClass("active") + } + }) + }); + + function scrollEvent() { + var scrollT = $(window).scrollTop(); + if (scrollT > 600) { + $("#ScrollTop").addClass("active") + $('.cebian').stop().addClass("active"); + } else { + $("#ScrollTop").removeClass("active"); + $('.cebian').stop().removeClass("active"); + } + + } + + $(".navmenu_div").click(function () { + if (!$(this).hasClass("closeNavbtn")) { + $(".head_navlist").stop().slideDown(); + $(this).addClass("closeNavbtn"); + $(".header").addClass("header_active"); + $("body").css({ + "overflow": "hidden" + }); + } else { + $(".head_navlist").stop().slideUp(); + $(this).removeClass("closeNavbtn"); + $("body").css({ + "overflow-y": "auto" + }); + } + }); + + $(".head_navlist ul li>span").click(function () { + + $(this).parent("li").siblings().find(".sub_zinav").stop().slideUp(); + $(this).parent("li").siblings().find("span").removeClass("cur") + $(this).siblings(".sub_zinav ").find(".sub_zinav3").stop().slideUp(); + $(this).siblings(".sub_zinav ").find("i").removeClass("active"); + if (!$(this).hasClass("cur")) { + $(this).siblings(".sub_zinav").stop().slideDown(); + $(this).addClass("cur"); + } else { + $(this).siblings(".sub_zinav").stop().slideUp(); + $(this).removeClass("cur"); + } + }) + + var window_width = $(window).innerWidth(); + if (window_width >= 992) { + var B ; + $(".head_navlist li").on("mouseleave",function(){ + var that = $(this) + B = setTimeout(function () { + that.find(".sub_zinav").hide(); + }, 800); + }); + $(".sub_zinav2").on("mouseleave",function(){ + $(this).find("i").removeClass("active"); + var that = $(this) + B = setTimeout(function () { + that.find(".sub_zinav3").hide(); + }, 800); + }); + $(".sub_zinav2").on("mouseenter",function(){ + $(this).find("i").addClass("active"); + $(this).find(".sub_zinav3").stop().slideDown(); + $(".ProductNav").stop().hide() + clearTimeout(B); + }); + + $(".head_navlist li a").on("mouseenter",function(){ + $(this).siblings(".sub_zinav").stop().slideDown(); + $(this).parent("li").siblings().find(".sub_zinav").hide() + clearTimeout(B); + if($(this).siblings(".ProductNav").length > 0){ + $(this).siblings(".Lhide").hide(); + }else{ + $(this).parent("li").siblings().find(".ProductNav").hide() + } + }); + $(".head_navlist li a").on("mouseleave",function(){ + clearTimeout(B); + }) + }else{ + $(".sub_zinav2 .Link2").click(function(){ + $(this).siblings("i").toggleClass("active"); + $(this).siblings(".sub_zinav3").stop().slideToggle(); + $(this).parent().siblings().find("i").removeClass("active").siblings(".sub_zinav3").stop().slideUp() + }) + } + + + + + $(".footer_nav .iconfontdown").click(function () { + if ($(this).hasClass("active")) { + $(this).parent("dl").find("dd").stop().slideUp() + $(this).removeClass("active") + } else { + $(this).parent("dl").find("dd").stop().slideDown() + $(this).addClass("active") + $(this).parent("dl").siblings().find(".footerNav3").stop().slideUp() + $(this).parent("dl").siblings().find("dd").stop().slideUp() + $(this).parent("dl").siblings().find("i").removeClass("active") + } + }) + if ($(window).innerWidth() <= 992) { + $(".footerNav2").click(function(){ + if($(this).find("i").hasClass("active")){ + $(this).find("i").removeClass("active") + $(this).find(".footerNav3").stop().slideUp() + + }else{ + $(this).find("i").addClass("active") + $(this).find(".footerNav3").stop().slideDown() + $(this).siblings().find("i").removeClass("active") + $(this).siblings().find(".footerNav3").stop().slideUp() + + } + }) + } + + $(".submenu_box .submenu_curtitle").click(function(){ + if(!$(this).hasClass("cur")){ + $(this).addClass("cur") + $(".submenu_box_list").stop().slideDown(); + }else{ + $(this).removeClass("cur") + $(".submenu_box_list").stop().slideUp(); + } + }); + + $(".innew_tab .item").click(function(){ + var index=$(this).index(); + $(this).addClass("active").siblings().removeClass("active") + $(".innew_list .innew_item").eq(index).css("display","flex").siblings().css("display","none") + }); + + + + + setHeader() + ifwidth(); + +}); + + + + +function setHeader() { + var initHeight = $(document).scrollTop(); + if (initHeight > 0) { + $(".header").addClass("header_active"); + } + + $(window).scroll(function () { + var b = $(document).scrollTop(); + if (b <= 60) { + $('.header').removeClass("header_active"); + + } else { + $('.header').addClass("header_active"); + } + }) +} + +function ifwidth() { + var window_width = $(window).innerWidth(); + if (window_width >= 768) { + $(".index_townlist").addClass("swiper-no-swiping") + $(".purpose_swiper").addClass("swiper-no-swiping") + $(".incase_swiper").addClass("swiper-no-swiping") + } +} + +$(function () { + $(".publicLeft .li h5").click(function () { + if($(this).parent(".li").hasClass("active2")){ + $(this).parent(".li").removeClass("active2") + $(this).removeClass("active") + $(this).siblings(".li2,.Downul2").stop().slideUp().children("h5").removeClass("active") + }else if($(this).parent(".li").hasClass("active")){ + $(this).parent(".li").removeClass("active") + $(this).removeClass("active") + $(this).siblings(".li2,.Downul2").stop().slideUp().children("h5").removeClass("active") + }else{ + $(this).parent(".li").addClass("active") + $(this).addClass("active") + $(this).siblings(".li2,.Downul2").stop().slideDown() + } + + + + }) + $(".publicLeft .li .ul2 .li3 .t").click(function () { + $(this).toggleClass("active") + $(this).parents(".ul2").siblings().find(".t").removeClass("active") + $(this).parents(".ul2").siblings().find(".ul3").stop().slideUp() + $(this).siblings(".ul3").stop().slideToggle() + + + + + + }) + +// $(".ProTabCont .tabItem").eq(0).show(); + $(".ProTabBar .tabTerm").click(function(){ + $(this).addClass('active'); + $(this).siblings().removeClass("active"); + var num =$(".ProTabBar .tabTerm").index(this); + $(".ProTabCont .tabItem").eq(num).addClass("active").siblings().removeClass("active"); + + var hei = $(".ProTabCont .tabItem").eq(num).height() + 70 + $(".ProductNav").height(hei) + + }) + var window_width = $(window).innerWidth(); + if (window_width > 992) { + var B ; + $(".header .ProductNavOff a").on("mouseenter",function(){ + $(".ProductNav").stop().slideDown() + $("body").addClass("active") + clearTimeout(B); + }); + $(".ProductNav").on("mouseenter",function(){ + clearTimeout(B); + }) + $(".header .ProductNavOff a").on("mouseleave",function(){ + clearTimeout(B); + }) + + $(".header .ProductNavOff").on("mouseleave",function(){ + B = setTimeout(function () { + $(".ProductNav").hide() + }, 800); + $("body").removeClass("active") + }); + + $(".header .ProductNav i").on("mouseenter",function(){ + B = setTimeout(function () { + $(".ProductNav").stop().hide() + }, 800); + $("body").removeClass("active") + }); + } + if (window_width < 768) { + // $(".publicLeft .li").removeClass("active") + } + + /*视频播放*/ + var myVideo=document.getElementById("Video1"); + $('.TopicPageCon2 .off').on('click',function(){ + if (myVideo.paused) { + setTimeout(() => { + myVideo.play(); + }, 10 ); + $(this).children("img").hide(); + }else { + setTimeout(() => { + myVideo.pause(); + }, 10 ); + $(this).children("img").show(); + } + }) + /*视频播放*/ + var myVideo2=document.getElementById("Video2"); + $('.big_video .off').on('click',function(){ + if (myVideo2.paused) { + setTimeout(() => { + myVideo2.play(); + + }, 10 ); + $(this).children("img").hide(); + $(this).siblings(".text").hide(); + }else { + setTimeout(() => { + myVideo2.pause(); + }, 10 ); + $(this).children("img").show(); + $(this).siblings(".text").show(); + } + }) + + if (typeof BeerSlider != 'undefined') { + $('.slider').each(function(){ + new BeerSlider(this); + }); + } + + new Swiper('.SolutionXQ_swiper', { + speed: 600, + slidesPerView: 3, + spaceBetween: 20, + scrollbar:'.SolutionXQ_scrollbar', + + breakpoints:{ + 992: { + spaceBetween: 10, + }, + 765: { + spaceBetween: 10, + slidesPerView: 2, + }, + 465: { + spaceBetween: 10, + slidesPerView: 1, + } + } + }); + + $('.AnchorLocation .li').click(function() { + $(this).addClass("active").siblings().removeClass("active") + var num = $(this).index(); + $('html,body').animate({ scrollTop: $('.Solution_XQ .box').eq(num).offset().top - 50 }, 500) + }); + var CXQswiper1 = new Swiper('.classicCase_XQswiper1', { + speed: 600, + slidesPerView: 1, + onSlideChangeEnd: function(swiper){ + var num = CXQswiper1.activeIndex; + $(".classicCase_XQswiper2 .swiper-slide").eq(num).addClass("active").siblings().removeClass("active") + } + + }); + var CXQswiper2 = new Swiper('.classicCase_XQswiper2', { + speed: 600, + slidesPerView: 6, + spaceBetween: 12, + breakpoints:{ + 992: { + slidesPerView: 5, + spaceBetween: 8, + }, + 765: { + spaceBetween:5, + slidesPerView: 4, + }, + 465: { + spaceBetween:5, + slidesPerView: 3, + } + } + + }); + $(".classicCase_XQswiper2 .swiper-slide").on("click",function(){ + var num = $(this).index() + CXQswiper1.slideTo(num, 1000, false);//切换到第一个slide,速度为1秒 + $(this).addClass("active").siblings().removeClass("active") + + }) + + //tab切换 + $(".ServiceTabCont .tabItem").eq(0).show(); + $(".ServiceTabBar .tabTerm").click(function(){ + $(this).addClass('active'); + $(this).siblings().removeClass("active"); + var num =$(".ServiceTabBar .tabTerm").index(this); + $(".ServiceTabCont .tabItem").eq(num).addClass("active").siblings().removeClass("active") + + }) + + new Swiper('.News_swiper', { + effect : 'fade', + speed: 600, + autoplay : 4000, + pagination: '.News_pagination', + paginationClickable :true, + breakpoints:{ + 765: { + autoHeight: true, + }, + } + + }); + + var aboutUsCon6_swiper = new Swiper('.aboutUsCon6_swiper', { + slidesPerView:5, + // autoplay : 4000, + speed:500, + // loop:true, + prevButton:'.aboutCon6_prev', + nextButton:'.aboutCon6_next', + breakpoints:{ + 992: { + slidesPerView: 4, + }, + 765: { + slidesPerView: 3, + }, + 465: { + slidesPerView: 2, + } + }, + onSlideChangeStart: function(swiper){ + $(".aboutUsCon6_swiper .swiper-slide").eq(swiper.activeIndex).addClass("active").siblings().removeClass("active") + $(".aboutUs .con6 .box .li").eq(swiper.realIndex).addClass("active").siblings().removeClass("active") + } + }); + + $(".aboutUs .con6 .aboutUsCon6_swiper .swiper-slide").on('click',function(){ + var num =$(this).index(); + $(this).addClass("active").siblings().removeClass("active") + $(".aboutUs .con6 .box .li").eq(num).addClass("active").siblings().removeClass("active") + console.log(num) + }) + + new Swiper('.aboutUsCon7_swiper', { + slidesPerView:4, + spaceBetween: 20, + autoplay : 4000, + scrollbar:'.aboutUsCon7_scrollbar', + breakpoints:{ + 992: { + slidesPerView: 3, + }, + 765: { + slidesPerView: 2, + }, + } + }); + + //tab切换 + $(".Case_bigTabBar .tabTerm").click(function(){ + $(this).addClass('active'); + $(this).siblings().removeClass("active"); + var num =$(".Case_bigTabBar .tabTerm").index(this); + $(".Case_bigTabCont .tabItem").eq(num).addClass("active").siblings().removeClass("active") + + }) + $(".Z6TopicPage6TabBar .tabTerm").click(function(){ + $(this).addClass('active'); + $(this).siblings().removeClass("active"); + var num =$(".Z6TopicPage6TabBar .tabTerm").index(this); + $(".Z6TopicPage6TabCont .tabItem").eq(num).addClass("active").siblings().removeClass("active") + + }) + $(".Case_CCETabBar .tabTerm").click(function(){ + $(this).addClass('active'); + $(this).siblings().removeClass("active"); + var num =$(".Case_CCETabBar .tabTerm").index(this); + $(".Case_CCETabCont .tabItem").eq(num).addClass("active").siblings().removeClass("active") + + }) + + new Swiper('.PastHighlights_swiper', { + slidesPerView:3, + spaceBetween: 30, + prevButton:'.PastHighlights_prev', + nextButton:'.PastHighlights_next', + breakpoints:{ + 992: { + spaceBetween: 10, + }, + 765: { + slidesPerView: 2, + }, + 465: { + slidesPerView: 1, + }, + } + }); + +// $(".TopicPageCon8").on('click',function(){ +// console.log("点击了") +// $(".tipsbox").hide(); +// }); + + $(".home4TabBar .tabTerm").click(function(){ + $(this).addClass('active'); + $(this).siblings().removeClass("active"); + var num =$(".home4TabBar .tabTerm").index(this); + $(".home4TabCont .tabItem").eq(num).addClass("active").siblings().removeClass("active") + + }) + + $(".publicLeft i").on("click",function(){ + if($(this).hasClass("active")){ + $(this).removeClass("active") + $(this).siblings(".li:not(:nth-child(2))").slideUp() + // $(this).siblings(".li.active").slideDown() + + }else{ + $(this).addClass("active") + $(this).siblings(".li").slideDown() + } + }) + + + + + +}) +$(function(){ + + $(".TopicPageCon8").click(function(){ + console.log('1') + $(".tipsbox").hide(); + }); + if($(".waves").length>0){ + class ShaderProgram { + + constructor( holder, options = {} ) { + + options = Object.assign( { + antialias: false, + depthTest: false, + mousemove: false, + autosize: true, + side: 'front', + vertex: ` + precision highp float; + + attribute vec4 a_position; + attribute vec4 a_color; + + uniform float u_time; + uniform vec2 u_resolution; + uniform vec2 u_mousemove; + uniform mat4 u_projection; + + varying vec4 v_color; + + void main() { + + gl_Position = u_projection * a_position; + gl_PointSize = (10.0 / gl_Position.w) * 100.0; + + v_color = a_color; + + }`, + fragment: ` + precision highp float; + + uniform sampler2D u_texture; + uniform int u_hasTexture; + + varying vec4 v_color; + + void main() { + + if ( u_hasTexture == 1 ) { + + gl_FragColor = v_color * texture2D(u_texture, gl_PointCoord); + + } else { + + gl_FragColor = v_color; + + } + + }`, + uniforms: {}, + buffers: {}, + camera: {}, + texture: null, + onUpdate: ( () => {} ), + onResize: ( () => {} ), + }, options ) + + var uniforms = Object.assign( { + time: { type: 'float', value: 0 }, + hasTexture: { type: 'int', value: 0 }, + resolution: { type: 'vec2', value: [ 0, 0 ] }, + mousemove: { type: 'vec2', value: [ 0, 0 ] }, + projection: { type: 'mat4', value: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] }, + }, options.uniforms ) + + var buffers = Object.assign( { + position: { size: 3, data: [] }, + color: { size: 4, data: [] }, + }, options.buffers ) + + var camera = Object.assign( { + fov: 60, + near: 1, + far: 10000, + aspect: 1, + z: 100, + perspective: true, + }, options.camera ) + + var canvas = document.createElement( 'canvas' ) + var gl = canvas.getContext( 'webgl', { antialias: options.antialias } ) + + if ( ! gl ) return false + + this.count = 0 + this.gl = gl + this.canvas = canvas + this.camera = camera + this.holder = holder + this.onUpdate = options.onUpdate + this.onResize = options.onResize + this.data = {} + + holder.appendChild( canvas ) + + this.createProgram( options.vertex, options.fragment ) + + this.createBuffers( buffers ) + this.createUniforms( uniforms ) + + this.updateBuffers() + this.updateUniforms() + + this.createTexture( options.texture ) + + gl.enable( gl.BLEND ) + gl.enable( gl.CULL_FACE ) + gl.blendFunc( gl.SRC_ALPHA, gl.ONE ) + gl[ options.depthTest ? 'enable' : 'disable' ]( gl.DEPTH_TEST ) + + if ( options.autosize ) + window.addEventListener( 'resize', e => this.resize( e ), false ) + if ( options.mousemove ) + window.addEventListener( 'mousemove', e => this.mousemove( e ), false ) + + this.resize() + + this.update = this.update.bind( this ) + this.time = { start: performance.now(), old: performance.now() } + this.update() + + } + + mousemove( e ) { + + var x = e.pageX / this.width * 2 - 1 + var y = e.pageY / this.height * 2 - 1 + + this.uniforms.mousemove = [ x, y ] + + } + + resize( e ) { + + var holder = this.holder + var canvas = this.canvas + var gl = this.gl + + var width = this.width = holder.offsetWidth + var height = this.height = holder.offsetHeight + var aspect = this.aspect = width / height + var dpi = this.dpi = devicePixelRatio + + canvas.width = width * dpi + canvas.height = height * dpi + canvas.style.width = width + 'px' + canvas.style.height = height + 'px' + + gl.viewport( 0, 0, width * dpi, height * dpi ) + gl.clearColor( 0, 0, 0, 0 ) + + this.uniforms.resolution = [ width, height ] + this.uniforms.projection = this.setProjection( aspect ) + + this.onResize( width, height, dpi ) + + } + + setProjection( aspect ) { + + var camera = this.camera + + if ( camera.perspective ) { + + camera.aspect = aspect + + var fovRad = camera.fov * ( Math.PI / 180 ) + var f = Math.tan( Math.PI * 0.5 - 0.5 * fovRad ) + var rangeInv = 1.0 / ( camera.near - camera.far ) + + var matrix = [ + f / camera.aspect, 0, 0, 0, + 0, f, 0, 0, + 0, 0, (camera.near + camera.far) * rangeInv, -1, + 0, 0, camera.near * camera.far * rangeInv * 2, 0 + ] + + matrix[ 14 ] += camera.z + matrix[ 15 ] += camera.z + + return matrix + + } else { + + return [ + 2 / this.width, 0, 0, 0, + 0, -2 / this.height, 0, 0, + 0, 0, 1, 0, + -1, 1, 0, 1, + ] + + } + + } + + createShader( type, source ) { + + var gl = this.gl + var shader = gl.createShader( type ) + + gl.shaderSource( shader, source ) + gl.compileShader( shader ) + + if ( gl.getShaderParameter (shader, gl.COMPILE_STATUS ) ) { + + return shader + + } else { + + console.log( gl.getShaderInfoLog( shader ) ) + gl.deleteShader( shader ) + + } + + } + + createProgram( vertex, fragment ) { + + var gl = this.gl + + var vertexShader = this.createShader( gl.VERTEX_SHADER, vertex ) + var fragmentShader = this.createShader( gl.FRAGMENT_SHADER, fragment ) + + var program = gl.createProgram() + + gl.attachShader( program, vertexShader ) + gl.attachShader( program, fragmentShader ) + gl.linkProgram( program ) + + if ( gl.getProgramParameter( program, gl.LINK_STATUS ) ) { + + gl.useProgram( program ) + this.program = program + + } else { + + console.log( gl.getProgramInfoLog( program ) ) + gl.deleteProgram( program ) + + } + + } + + createUniforms( data ) { + + var gl = this.gl + var uniforms = this.data.uniforms = data + var values = this.uniforms = {} + + Object.keys( uniforms ).forEach( name => { + + var uniform = uniforms[ name ] + + uniform.location = gl.getUniformLocation( this.program, 'u_' + name ) + + Object.defineProperty( values, name, { + set: value => { + + uniforms[ name ].value = value + this.setUniform( name, value ) + + }, + get: () => uniforms[ name ].value + } ) + + } ) + + } + + setUniform( name, value ) { + + var gl = this.gl + var uniform = this.data.uniforms[ name ] + + uniform.value = value + + switch ( uniform.type ) { + case 'int': { + gl.uniform1i( uniform.location, value ) + break + } + case 'float': { + gl.uniform1f( uniform.location, value ) + break + } + case 'vec2': { + gl.uniform2f( uniform.location, ...value ) + break + } + case 'vec3': { + gl.uniform3f( uniform.location, ...value ) + break + } + case 'vec4': { + gl.uniform4f( uniform.location, ...value ) + break + } + case 'mat2': { + gl.uniformMatrix2fv( uniform.location, false, value ) + break + } + case 'mat3': { + gl.uniformMatrix3fv( uniform.location, false, value ) + break + } + case 'mat4': { + gl.uniformMatrix4fv( uniform.location, false, value ) + break + } + } + + // ivec2 : uniform2i, + // ivec3 : uniform3i, + // ivec4 : uniform4i, + // sampler2D : uniform1i, + // samplerCube : uniform1i, + // bool : uniform1i, + // bvec2 : uniform2i, + // bvec3 : uniform3i, + // bvec4 : uniform4i, + + } + + updateUniforms() { + + var gl = this.gl + var uniforms = this.data.uniforms + + Object.keys( uniforms ).forEach( name => { + + var uniform = uniforms[ name ] + + this.uniforms[ name ] = uniform.value + + } ) + + } + + createBuffers( data ) { + + var gl = this.gl + var buffers = this.data.buffers = data + var values = this.buffers = {} + + Object.keys( buffers ).forEach( name => { + + var buffer = buffers[ name ] + + buffer.buffer = this.createBuffer( 'a_' + name, buffer.size ) + + Object.defineProperty( values, name, { + set: data => { + + buffers[ name ].data = data + this.setBuffer( name, data ) + + if ( name == 'position' ) + this.count = buffers.position.data.length / 3 + + }, + get: () => buffers[ name ].data + } ) + + } ) + + } + + createBuffer( name, size ) { + + var gl = this.gl + var program = this.program + + var index = gl.getAttribLocation( program, name ) + var buffer = gl.createBuffer() + + gl.bindBuffer( gl.ARRAY_BUFFER, buffer ) + gl.enableVertexAttribArray( index ) + gl.vertexAttribPointer( index, size, gl.FLOAT, false, 0, 0 ) + + return buffer + + } + + setBuffer( name, data ) { + + var gl = this.gl + var buffers = this.data.buffers + + if ( name == null && ! gl.bindBuffer( gl.ARRAY_BUFFER, null ) ) return + + gl.bindBuffer( gl.ARRAY_BUFFER, buffers[ name ].buffer ) + gl.bufferData( gl.ARRAY_BUFFER, new Float32Array( data ), gl.STATIC_DRAW ) + + } + + updateBuffers() { + + var gl = this.gl + var buffers = this.buffers + + Object.keys( buffers ).forEach( name => + buffers[ name ] = buffer.data + ) + + this.setBuffer( null ) + + } + + createTexture( src ) { + + var gl = this.gl + var texture = gl.createTexture() + + gl.bindTexture( gl.TEXTURE_2D, texture ) + gl.texImage2D( gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array( [ 0, 0, 0, 0 ] ) ) + + this.texture = texture + + if ( src ) { + + this.uniforms.hasTexture = 1 + this.loadTexture( src ) + + } + + } + + loadTexture( src ) { + + var gl = this.gl + var texture = this.texture + + var textureImage = new Image() + + textureImage.onload = () => { + + gl.bindTexture( gl.TEXTURE_2D, texture ) + + gl.texImage2D( gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, textureImage ) + + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR ) + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR ) + + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE) + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE) + + // gl.generateMipmap( gl.TEXTURE_2D ) + + } + + textureImage.src = src + + } + + update() { + + var gl = this.gl + + var now = performance.now() + var elapsed = ( now - this.time.start ) / 5000 + var delta = now - this.time.old + this.time.old = now + + this.uniforms.time = elapsed + + if ( this.count > 0 ) { + gl.clear( gl.COLORBUFFERBIT ) + gl.drawArrays( gl.POINTS, 0, this.count ) + } + + this.onUpdate( delta ) + + requestAnimationFrame( this.update ) + + } + + } + + var pointSize = 2.5 + + var waves = new ShaderProgram( document.querySelector( '.waves' ), { + texture: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8v0wLRAAAAJHRSTlMAC/goGvDhmwcExrVjWzrm29TRqqSKenRXVklANSIUE8mRkGpv+HOfAAABCElEQVQ4y4VT13LDMAwLrUHteO+R9f/fWMfO6dLaPeKVEECRxOULWsEGpS9nULDwia2Y+ALqUNbAWeg775zv+sA4/FFRMxt8U2FZFCVWjR/YrH4/H9sarclSKdPMWKzb8VsEeHB3m0shkhVCyNzeXeAQ9Xl4opEieX2QCGnwGbj6GMyjw9t1K0fK9YZunPXeAGsfJtYjwzxaBnozGGorYz0ypK2HzQSYx1y8DgSRo2ewOiyh2QWOEk1Y9OrQV0a8TiBM1a8eMHWYnRMy7CZ4t1CmyRkhSUvP3gRXyHOCLBxNoC3IJv//ZrJ/kxxUHPUB+6jJZZHrpg6GOjnqaOmzp4NDR48OLxn/H27SRQ08S0ZJAAAAAElFTkSuQmCC', + uniforms: { + size: { type: 'float', value: pointSize }, + field: { type: 'vec3', value: [ 0, 0, 0 ] }, + speed: { type: 'float', value: 5 }, + }, + vertex: ` + #define M_PI 3.1415926535897932384626433832795 + + precision highp float; + + attribute vec4 a_position; + attribute vec4 a_color; + + uniform float u_time; + uniform float u_size; + uniform float u_speed; + uniform vec3 u_field; + uniform mat4 u_projection; + + varying vec4 v_color; + + void main() { + + vec3 pos = a_position.xyz; + + pos.y += ( + cos(pos.x / u_field.x * M_PI * 8.0 + u_time * u_speed) + + sin(pos.z / u_field.z * M_PI * 8.0 + u_time * u_speed) + ) * u_field.y; + + gl_Position = u_projection * vec4( pos.xyz, a_position.w ); + gl_PointSize = ( u_size / gl_Position.w ) * 100.0; + + v_color = a_color; + + }`, + fragment: ` + precision highp float; + + uniform sampler2D u_texture; + + varying vec4 v_color; + + void main() { + + gl_FragColor = v_color * texture2D(u_texture, gl_PointCoord); + + }`, + onResize( w, h, dpi ) { + + var position = [], color = [] + + var width = 400 * ( w / h ) + var depth = 400 + var height = 3 + var distance = 5 + + for ( var x = 0; x < width; x += distance ) { + for ( var z = 0; z < depth; z+= distance ) { + + position.push( - width / 2 + x, -30, -depth / 2 + z ) + color.push( 0, 1 - ( x / width ) * 1, 0.5 + x / width * 0.5, z / depth ) + + } + } + + this.uniforms.field = [ width, height, depth ] + + this.buffers.position = position + this.buffers.color = color + + this.uniforms.size = ( h / 400) * pointSize * dpi + + }, + } ) + } + +}); + +$body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $("html") : $("body")) : $("html,body"); +$("#ScrollTop").click(function () { + $body.animate({ scrollTop: 0 }, 400) +}); + + + + + + + + + +