普通网友 2017-07-31 02:45 采纳率: 52.6%
浏览 857
已采纳

嗯,封装除了问题,帮看看

 DigsurGallery = {};
DigsurGallery.Rolling = function() {
    this.change = null;
    this.length = 0;
    this.btn2length = 0;
    this.btn1length = 0;
    this.changeA = null;
    this.changeB = null;
}
// 对象下的一个方法
DigsurGallery.Rolling.prototype.FadeInOut = function(name, arr, arr2, HasPaging) {
    // ------------------ Haspaging Start --------------------- //
    var _this = this;
    if(HasPaging == true) {
        var oDiv = $('#' + name);
        var btn1 = $("<input type='button' id='btn1' value='1'>");
        var btn2 = $("<input type='button' id='btn2' value='2'>");
        oDiv.append(btn1);
        oDiv.append(btn2);
        var oUlPageOne = $("<ul id='test1'></ul>");
        var oUlPageTwo = $("<ul id='test2'></ul>");
        oDiv.append(oUlPageOne);
        oDiv.append(oUlPageTwo);
        $("#test2").css({
            "display": "none",
            "position": "relative",
            "width": "100%",
            "height": "100%",
        });
        $("#test1").css({
            "position": "relative",
            "width": "100%",
            "height": "100%",
        });
        oDiv.find('ul').css("height", "100%");
        for(var i = 0; i < arr.length; i++) {
            var oli = $("<li></li>");
            oUlPageOne.append(oli);
            var oImg = $("<img />")
            $(oImg).attr('src', arr[i]);
            oli.append(oImg);
        }
        for(var i = 0; i < arr2.length; i++) {
            var oli = $("<li></li>");
            oUlPageTwo.append(oli);
            var oImg = $("<img />")
            $(oImg).attr('src', arr2[i]);
            oli.append(oImg);
        }
    } else {
        var oDiv = $('#' + name);
        var oUl = $("<ul></ul>");
        oDiv.append(oUl);
        oDiv.find('ul').css("height", "100%");
        for(var i = 0; i < arr.length; i++) {
            var oli = $("<li></li>");
            oUl.append(oli);
            var oImg = $("<img />")
            $(oImg).attr('src', arr[i]);
            oli.append(oImg);
        }
    }

    var lis = oDiv.find('li');
    var Lisimgs = lis.find('img');
    Lisimgs.css({
        "width": "100%",
        "height": "100%",
        "box-shadow": "-5px 6px 11px  #211f1f",
    })
    lis.css({
        "display": "none",
        "width": "100%",
        "height": "100%",
        "position": "absolute",
//      "left": "15%",
//      "top": "15%",
        "float": "left",
    });
    lis.eq(0).css("display", "block");

    // 定时器轮播
    this.change = setInterval(function() {
        this.length++;
        // 判断 个数
        if(this.length == arr.length) {
            this.length = 0;
        }
        // 调用fadeIn、fadeOut方法
        console.log("arr.length为:"+arr.length);
        console.log("this.length为:"+this.length);
        showaa(this.length);
    }.bind(this), 2000);

    function showaa(length) {
        lis.eq(length - 1).fadeOut(1000); //将上一张图片隐藏
        lis.eq(length).fadeIn(2000); //将这张图片出现
    }

    $("#btn1").click(function() {
        clearInterval(_this.change);
        clearInterval(_this.changeB);
        _this.changeA = setInterval(function() {
            _this.btn1length += 1;
            console.log("btn1打印" + _this.btn1length);
        }, 1000);
        console.log("btn1获取当前i值" + _this.btn1length);
    })

    $("#btn2").click(function() {
        clearInterval(_this.change);
        clearInterval(_this.changeA);
        _this.changeB = setInterval(function() {
            _this.btn2length += 1;
            console.log("btn2打印" + _this.btn2length);
        }, 1000);
        console.log("btn2获取当前i值" + _this.btn2length);
    })
}

现在的问题是:
1:当我的Haspage 为true 时,轮播走到arr.length时就不走动了。
2:点击btn的时候,也是不走动,而且,轮播速度加快(console发现的加快)

嗯,谢谢大家,帮我看一下,谢谢谢谢。我对封装这一块很是迷茫,补了好几天还是不太会,帮我看看怎么写,教我一下,不胜感激。
  • 写回答

3条回答 默认 最新

  • 算不算码农 2017-07-31 13:06
    关注

    你每次点击的时候 都会加快计时器的循环速度 开启计时器一般都在前方加个清除计时器方法,以免遇到楼主遇到的问题,
    还有“定时轮播中”的this 你应该用错了,这应该是直接导致无法循环的原因。
    至于 Lis “图片集合”你可以在showaa方法中打印一下 console.log(lis.eq(length - 1))是否是存在的

    以上应该是能帮助你解决现在的问题的。不懂继续交流哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。