普通网友 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 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?