$(function() { var timer = null; var str = ''; var speed = 500; var wrapElWidth = $(".data_author").width(); // 一屏的宽度 var totalLen = $('.data_authorCon > div').length; // 总屏数 var currentIndex = 0; $('.data_authorCon').width(wrapElWidth * totalLen); $('.data_authorCon > div').each(function(i) { str += '
  • '+ (i+1) +'
  • ' }); $('ul.data_numList').html(str); $('ul.data_numList li:first').addClass('data_on'); start(); // 外围元素区块 鼠标以上停止滚动 移出继续滚动 $(".data_author").hover(function() { stop(); },function(){ start(); }); // 上一屏 下一屏 $('.data_next').click(function() { slide(1) }); $('.data_prev').click(function() { slide( - 1) }); // 各屏的当前点 $('.data_numList li').click(function() { currentIndex = $(this).index(); fade(currentIndex); addLight($('.data_numList li').eq(currentIndex), 'data_on') }); // 开始函数 function start() { t = setInterval(function() { slide(1); },3000); } function stop() { if(t){clearInterval(t);} } // 滚动函数 function slide(j) { if ($('.data_authorCon').is(':animated') == false) { currentIndex += j; if (currentIndex != -1 && currentIndex != totalLen) { $('.data_authorCon').animate({ 'marginLeft': -currentIndex * wrapElWidth + 'px' },speed); } else if (currentIndex == -1) { currentIndex = totalLen - 1; $(".data_authorCon").css({ "marginLeft": -(wrapElWidth * (currentIndex - 1)) + "px" }); $(".data_authorCon").animate({ "marginLeft": -(wrapElWidth * currentIndex) + "px" },speed); } else if (currentIndex == totalLen) { currentIndex = 0; $(".data_authorCon").css({ "marginLeft": -wrapElWidth + "px" }); $(".data_authorCon").animate({ "marginLeft": 0 + "px" },speed); } addLight($('.data_numList li').eq(currentIndex), 'data_on') } } // 给当前屏的点高亮 function addLight(ele, currentClass) { ele = $(ele) ? $(ele) : ele; ele.addClass(currentClass).siblings().removeClass(currentClass) } // 淡入淡出函数 function fade(i) { if ($('.data_authorCon').css('marginLeft') != -i * wrapElWidth + 'px') { $('.data_authorCon').css('marginLeft', -i * wrapElWidth + 'px'); $('.data_authorCon').fadeOut(0,function(){ $('.data_authorCon').fadeIn(500); }) } } });