$(function () { // $(".header_root").load("./comm/header.html"); $(".footer_root").load("./comm/footer.html"); // nav传值显示下划线 // $(".header_root").data("nav_info", 3); var datalist = [ { time: 2023 }, { time: 2022 }, { time: 2021 }, { time: 2020 }, { time: 2019 }, { time: 2018 }, { time: 2017 } ]; // 请求接口前缀 3.6.1 中文列表 $.ajax({ type: "POST", url: $.baseUrl + "dh/listc", dataType: "json", async: false, contentType: "application/json; charset=utf-8", success: function (data) { if (data.code === 0) { datalist = data.obj; } else { alert(data.msg); } } }); var html = ""; $.each(datalist, (idx, item) => { html += `
${item.dhyear || item.time}
`; }); $(".rounds").width(datalist.length * 2.34 + "rem"); $(".rounds").html(html); $(".round_q:first").addClass("active"); //默认第一个添加背景色 function showdata(index) { var list = datalist[index].details, html = '
'; if (!list || list.length == 0) { return; } $.each(list, (idx, item) => { if (idx % 4 == 0 && idx) { html += '
'; } html += `
${item.dhmonth}  -  ${item.content}
`; }); if (list.length < 9) { html += '
'; } else if (list.length < 5) { html += '
'; } $(".develop_data").html(html); } //获取元素 var divwidth = $(".round_q:first").width(); var list = $(".rounds"); var buts = $(".round_q"); var prev = $(".leftjt"); var next = $(".rightjt"); var index = 1; //存放当前显示的图片的下标 var len = 5; //显示数量 var interval = 5000; //位移时间间隔 var timer; var offsetpx = (datalist.length - len) * divwidth; //可偏移度 var offleft = 0; //当前偏移量 function animate(offset) { var left = parseInt(list.css("left")) + offset; var absnum = Math.abs(offset); if (left < 0 - offsetpx) { //右侧没有数据时不偏移 return; } // 边界判断 if (offset > 0) { offset = "+=" + offset; offleft = offleft + absnum; } else { offset = "-=" + Math.abs(offset); offleft = offleft - absnum; } if (index < 5 && offleft >= 0) { return; } list.animate({ left: offset }, 300, function () { if (left > -200) { // list.css("left", (0 - offset) * len); } if (index == datalist.length) { //轮播最后一条 offset = 0 - (datalist.length - 5) * absnum; offleft = offset; list.css("left", offset); } }); } //点击高亮滚动 function animates(offset) { var left = parseInt(list.css("left")) + offset; //获取元素属性 if (index < 6 && left >= 0) { list.animate({ left: 0 }, 300, function () {}); return; } // 边界判断 if (left < 0 - offsetpx) { offset = 0 - offsetpx; } else { if (offset > 0) { offset = "+=" + divwidth; offleft = offleft; } else { offset = "-=" + divwidth; offleft = offset; } } list.animate({ left: offset }, 300, function () {}); } //亮起小圆点 function showButton() { //当前图片的小圆点亮起,其他小圆点不亮 buts .eq(index - 1) .addClass("active") .siblings() .removeClass("active"); } // 鼠标离开图片区域时,轮播继续 function play() { timer = setTimeout(function () { next.trigger("click"); play(); }, interval); } //鼠标进入图片区域时,停止轮播 function stop() { if (timer) { clearTimeout(timer); timer = null; } } // 右按钮点击事件 next.bind("click", function () { // 判断当前是否在动画 if (list.is(":animated")) { return; } // 判断当前图片是否是最后一张 if (index == datalist.length) { index = 1; offleft = 0; list.animate({ left: 0 }, 300, () => {}); } else { index += 1; } animate(0 - divwidth); showdata(index - 1); showButton(); stop(); }); // 左按钮事件 prev.bind("click", function () { // 判断当前是否在动画 if (list.is(":animated")) { return; } // 判断当前图片是否是第一张 if (index == 1) { index = datalist.length; } else { index -= 1; } stop(); animate(divwidth); showdata(index - 1); showButton(); }); // 小圆点点击事件 buts.each(function () { $(this).bind("click", function () { // 判断当前是否在进行动画 if (list.is(":animated") || $(this).attr("class") == "on") { return; } var myIndex = parseInt($(this).attr("index")); if (myIndex == index) { return; } //计算偏移量 var offset = (0 - divwidth) * (myIndex - index); index = myIndex; animates(offset); showdata(index - 1); showButton(); stop(); }); }); showdata(0); $(".develop_container").hover(stop, play); play(); });