$(function () { //多行应用@Mr.Think var _wrap = $('ul.zugong_roll'); //定义滚动区域 var _left = $('.zgleft'); // 定义向左按钮 var _right = $('.zgright'); //定义向右按钮 var _interval = 5000; //定义滚动间隙时间 var _moving; //需要清除的动画 _wrap.hover(function () { clearInterval(_moving); //当鼠标在滚动区域中时,停止滚动 }, function () { _moving = setInterval(function () { var _field = _wrap.find('li:first'); //此变量不可放置于函数起始处,li:first取值是变化的 var _w = _field.width(); //取得每次滚动宽度 _field.animate({ marginLeft: -_w + 'px' }, 600, function () {//通过取负margin值,隐藏第一行 _field.css('marginLeft', 0).appendTo(_wrap); //隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动 }) }, _interval)//滚动间隔时间取决于_interval }).trigger('mouseleave'); //函数载入时,模拟执行mouseleave,即自动滚动 _left.click( function () { clearInterval(_moving); var _filed = _wrap.find('li:first'); var _w = _filed.width(); _filed.animate({ marginLeft: -_w + 'px' }, 600, function () { _filed.css({ 'marginLeft':0 }).appendTo(_wrap); //_filed.animate({ 'right':0}, 600); }); _moving = setInterval(function () { var _field = _wrap.find('li:first'); //此变量不可放置于函数起始处,li:first取值是变化的 var _w = _field.width(); //取得每次滚动宽度 _field.animate({ marginLeft: -_w + 'px' }, 600, function () {//通过取负margin值,隐藏第一行 _field.css('marginLeft', 0).appendTo(_wrap); //隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动 }) }, _interval)//滚动间隔时间取决于_interval }); _right.click( function () { clearInterval(_moving); var _filed = _wrap.find('li:last'); _filed.prependTo(_wrap); var _w = _filed.width(); _filed.animate({ marginRight: -_w + 'px' }, 600, function () { _filed.css('marginRight', 0) }); _moving = setInterval(function () { var _field = _wrap.find('li:first'); //此变量不可放置于函数起始处,li:first取值是变化的 var _w = _field.width(); //取得每次滚动宽度 _field.animate({ marginLeft: -_w + 'px' }, 600, function () {//通过取负margin值,隐藏第一行 _field.css('marginLeft', 0).appendTo(_wrap); //隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动 }) }, _interval)//滚动间隔时间取决于_interval }); });