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