12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- function RandomNum(min, max) {
- return Math.floor(Math.random() * (max - min) + min);
- }
- // 水平滚动插件
- (function ($) {
- $.fn.extend({
- Scroll: function (opt, callback) {
- //参数初始化
- if (!opt) var opt = {};
- var _btnRight = $("#" + opt.right); //Shawphy:向右按钮
- var _btnLeft = $("#" + opt.left); //Shawphy:向左按钮
- var timerID;
- var _this = this.eq(0).find("ul:first");
- var lineW = _this.find("li:first").width(), //获取列表宽度
- line = opt.line ? parseInt(opt.line, 10) : parseInt(this.width() / lineW, 10), //每次滚动的行数,默认为一屏,即父容器高度
- speed = opt.speed ? parseInt(opt.speed, 10) : 500; //卷动速度,数值越大,速度越慢(毫秒)
- timer = opt.timer //?parseInt(opt.timer,10):3000; //滚动的时间间隔(毫秒)
- if (line == 0) line = 1;
- var rightWidth = 0 - line * lineW;
- //滚动函数
- var scrollRight = function () {
- _btnRight.unbind("click", scrollRight);
- _this.animate({
- marginLeft: rightWidth
- }, speed, function () {
- for (i = 1; i <= line; i++) {
- _this.find("li:first").appendTo(_this);
- }
- _this.css({ marginLeft: 0 });
- _btnRight.bind("click", scrollRight);
- });
- }
- //Shawphy:向左翻页函数
- var scrollLeft = function () {
- _btnLeft.unbind("click", scrollLeft);
- for (i = 1; i <= line; i++) {
- _this.find("li:last").show().prependTo(_this);
- }
- _this.css({ marginLeft: rightWidth });
- _this.animate({
- marginLeft: 0
- }, speed, function () {
- _btnLeft.bind("click", scrollLeft);
- });
- }
- //Shawphy:自动播放
- var autoPlay = function () {
- if (timer) timerID = window.setInterval(scrollRight, timer);
- };
- var autoStop = function () {
- if (timer) window.clearInterval(timerID);
- };
- //鼠标事件绑定
- _this.hover(autoStop, autoPlay);
- autoPlay();
- var i = 0;
- var rd = RandomNum(0, 10);
- while (i++ < rd) {
- scrollRight();
- }
- _btnRight.css("cursor", "pointer").click(scrollRight).hover(autoStop, autoPlay);
- _btnLeft.css("cursor", "pointer").click(scrollLeft).hover(autoStop, autoPlay);
- }
- })
- })(jQuery);
|