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