(function (window) { var mc = {}; if (window.mc) { mc = window.mc } /** * @description 数字滚动 需引入appear.js 并在元素上加上data-num属性 * * @param {document} obj - js dom对象选择器 */ mc.numroll = function (obj) { var $obj = $(obj); $obj.appear(function () { var content = $(this).text(); var counter = parseint($(this).text().replace(/,/g, "")); $(this).countto({ from: 1, to: counter, speed: 1500, refreshinterval: 60, oncomplete: function () { $(this).text(content); } }); }); } // 手机端视频不自动播放 mc.phvideo = function () { if ($(window).width() < 768 && $("video").length > 0) { $("video").each(function () { $(this).removeattr("autoplay"); $(this).get(0).pause(); }) } } /** * @description 轮播视频相关初始化 * * @param {*} obj - js dom轮播对象选择器 */ mc.banvideo = function (obj) { var $obj = $(obj); if ($(window).width() > 1200 && $obj.find("video").length > 0) { var $firslide = $(obj).find(".slick-slide").not(".slick-cloned").eq(0); // autoplay自动播放 $(window).load(function () { if ($firslide.find("video").length > 0) { $obj.slick('slickpause'); if ($firslide.find("video").get(0).paused) { settimeout(function () { $firslide.find("video").get(0).play(); }, 100) } } else { $obj.slick('slickplay'); } }) $obj.find("video").each(function () { var video = $(this).get(0); //获取视频js对象 var videoindex = $(video).parents(".slick-slide").attr("data-slick-index") //获取视频对象所在的页数; // 播放结束切换到下一张 video.onended = function () { $obj.slick("next"); $obj.slick('slickplay'); } // 切换后转为自动轮播 $obj.on('afterchange', function (event, slick, currentslide) { if (currentslide == videoindex) { $obj.slick('slickpause'); video.currenttime = 0; video.play(); } }); }) } else { $obj.slick('slickplay'); } } //下拉选择 mc.select = function (obj) { var $obj = $(obj); $obj.find(".mc_select_li").each(function(){ var txt = $(this).text(); $(this).attr("data-val",txt); }); $obj.find(".mc_select_hd").click(function (e) { var target = $(this).siblings(".mc_select_bd").get(0); $(".mc_select_bd").not(target).stop().slideup(); var targetxtb = $(this).find(".mc_select_xtb"); $(".mc_select_xtb").not(targetxtb).stop().removeclass("on"); $(this).siblings(".mc_select_bd").stop().slidetoggle(); // 图标旋转 $(this).find(".mc_select_xtb").toggleclass("on"); e.stoppropagation(); }) $obj.find(".mc_select_li").click(function () { var selectshow = $(this).text(); var realshow = $(this).data("val"); $(this).parents(".mc_select_bd").siblings(".mc_select_hd").find(".mc_select_show").val(selectshow); $(this).parents(".mc_select_bd").siblings(".mc_select_hd").find(".mc_select_real").val(realshow ); if($(this).attr("cc")){ $(this).parents(".mc_select_bd").siblings(".mc_select_hd").find(".mc_select_show").attr("cc",$(this).attr("cc")); $(this).parents(".mc_select_bd").siblings(".mc_select_hd").find(".mc_select_real").attr("cc",$(this).attr("cc")); } if($(this).attr("send")){ $(this).parents(".mc_select_bd").siblings(".mc_select_hd").find(".mc_select_show").attr("send",$(this).attr("send")); $(this).parents(".mc_select_bd").siblings(".mc_select_hd").find(".mc_select_real").attr("send",$(this).attr("send")); } // $(this).parents(".mc_select_bd").slideup(); $(this).parents(".mc_select_bd").siblings(".mc_select_hd").find(".mc_select_real").trigger("change"); }) // 点击页面关闭 $("body").click(function () { $(".mc_select_bd").stop().slideup(); $(".mc_select_xtb").removeclass("on"); }) } // 瀑布流 mc.warterfall = function (obj) { var $obj = $(obj); wfinit(); $(window).load(function () { wfinit(); }) $(window).resize(function () { wfinit(); }) function wfinit() { // 瀑布流宽度 var wfwidth = $obj.width(); var item = $obj.children(); var itemwidth = item.outerwidth(); //一行放几个 var count = math.round(wfwidth / itemwidth); // 定义一个数组index*width为item横坐标,值为item纵坐标 var heightarr = []; for (var i = 0; i < count; i++) { heightarr[i] = 0; } item.each(function () { var minandindexarr = minandindex(heightarr); var minheihgt = minandindexarr[0]; var index = minandindexarr[1]; $(this).css("left", index * itemwidth); $(this).css("top", minheihgt); var itemmargin = parsefloat($(this).css("margintop")) + parsefloat($(this).css("marginbottom")); heightarr[index] += $(this).height() + itemmargin; var maxheihgt = math.max.apply(null, heightarr); $obj.height(maxheihgt); }) } // 获取数组的最小高度和它的索引 function minandindex(arr) { var minheihgt = math.min.apply(null, arr); var index = arr.indexof(minheihgt); var minandindexarr = [minheihgt, index]; return minandindexarr; } } // tab栏 mc.tab = function (obj) { var $obj = $(obj); $obj.find(".mc_tabhd_li").click(function () { var index = $(this).index(); $(this).addclass("on").siblings().removeclass("on"); $(this).parents(obj).find(".mc_tabbd_lisbox").eq(index).stop().fadein().siblings().stop().hide(); }); } /** * @description 将到1970年的毫秒数转换为天,时,分,秒的格式 * * @param {*} date 日期到1970年的毫秒数 * @returns 数组[day, hour, min, sec] */ mc.dateformart = function (date) { var day = math.floor(date / (86400000)); var hour = math.floor(date % (86400000) / (3600000)); var min = math.floor(date % (3600000) / 60000); var sec = math.floor(date % (60000) / 1000); return [day, hour, min, sec]; } /** * @description 弹窗蒙层 * * @param {string} btn 弹窗触发按钮(选择器) * @param {string} modal 对应弹窗(选择器) * @param {boolean} modalclose 点击蒙层非内容部分是否可关闭(默认为否) */ var modal = { $html: $("html"), $body: $(document.body), originalbodypad: null, scrollbarwidth: 0, show: function () { this.checkscrollbar() this.setscrollbar() this.$html.addclass('modal-open') }, hide: function () { this.$html.removeclass('modal-open') this.resetscrollbar(); }, checkscrollbar: function () { var fullwindowwidth = window.innerwidth if (!fullwindowwidth) { // workaround for missing window.innerwidth in ie8 var documentelementrect = document.documentelement.getboundingclientrect(); fullwindowwidth = documentelementrect.right - math.abs(documentelementrect.left); } this.bodyisoverflowing = document.body.clientwidth < fullwindowwidth; this.scrollbarwidth = this.measurescrollbar(); }, setscrollbar: function () { var bodypad = parseint((this.$body.css('padding-right') || 0), 10) this.originalbodypad = document.body.style.paddingright || '' if (this.bodyisoverflowing) this.$body.css('padding-right', bodypad + this.scrollbarwidth) }, measurescrollbar: function () { var scrolldiv = document.createelement('div'); scrolldiv.classname = 'modal-scrollbar-measure'; this.$body.append(scrolldiv); var scrollbarwidth = scrolldiv.offsetwidth - scrolldiv.clientwidth; this.$body[0].removechild(scrolldiv); return scrollbarwidth; }, resetscrollbar: function () { this.$body.css('padding-right', this.originalbodypad); } } mc.modal = modal; mc.modal = function (btn, modal, modalclose) { var $modal = $(modal); var $btn = $(btn); // 显示 $btn.click(function (e) { e = e || window.event; e.stoppropagation(); $modal.stop().fadein(); modal.show(); }); // 关闭 $(".mc_modal_close").click(function () { $modal.stop().fadeout(function () { modal.hide(); }); }); if (modalclose) { $modal.click(function () { $modal.stop().fadeout(function () { modal.hide(); }); }) } // 取消冒泡 $(".mc_modal_container").click(function (e) { e = e || window.event; e.stoppropagation(); }) } //侧边导航 function asidenav() { $(window).load(function () { var toparr = []; var navheight = $(".mc_pc_hd").height(); $(".mc_section").each(function () { var top = $(this).offset().top; toparr.push(top); }); // 导航位置不进入banner和footer var cen1 = $(".mc_main").offset().top - $(".mc_navbar").height(); var cen2 = $(".mc_ft").offset().top - $(".mc_asidebox").height() - parseint($(".mc_asidebox").css("bottom")) - $(".mc_asidebox").get(0).offsettop; // 进入页面初始化 asidenavposition(); asidenavtb(); //导航点击 $(".mc_aside_li").click(function () { var index = $(this).index(); $("html,body").stop().animate({ "scrolltop": toparr[index] - navheight }, 500); }); $(".mc_asidebox").stop().fadein(); // 滚动事件监听 $(window).scroll(function () { // 导航位置 asidenavposition(); //左侧样式同步 asidenavtb(); }); function asidenavposition() { if ($(window).scrolltop() > cen2) { $(".mc_asidebox").addclass("mc_bot").removeclass("mc_fixed"); } else if ($(window).scrolltop() > cen1) { $(".mc_asidebox").addclass("mc_fixed").removeclass("mc_bot"); } else { $(".mc_asidebox").removeclass("mc_fixed").removeclass("mc_bot"); } }; //左侧样式同步 function asidenavtb() { for (var i = 0; i < toparr.length; i++) { if ($(window).scrolltop() > toparr[i] - $(window).height() / 3) { $(".mc_aside_li").eq(i).addclass("on").siblings().removeclass("on"); } else { return; } } } }) } window.mc = mc; }(window)) // slick常用方法 function slickinit() { // 轮播初始化 $('.mc_banner_slick').slick({ dots: true, arrows: true, autoplay: true, // vertical: true, // slidestoshow: 1, // slidestoscroll: 1, // asnavfor: ".s3_subcontent ul,.s3_img_slide", // responsive: [{ // breakpoint: 1200, // settings: { // slidestoshow: 1 // } // }, ] }); //上一张 下一张 $('.mc_banner_slick').slick("prev"); $('.mc_banner_slick').slick("next"); // 到哪一张 $(".mc_banner_slick").slick("slickgoto", index) //翻页完成后执行 $(".mc_banner_slick").on('afterchange', function (event, slick, currentslide, nextslide) { var index = currentslide; }); //开始停止自动播放 $obj.slick('slickpause'); $obj.slick('slickplay'); }