javascript - 关于JS面向对象实现一张页面多个轮播图的问题。
PHPz
PHPz 2017-04-11 12:40:42
[JavaScript讨论组]

无法自动播放,目前只想先把一个轮播完成,再完成其他的,小白一枚第一次写对象,求大神告知

    

window.onload=function(){

        new Slide('slide1');
    }

    function Slide(id){
        _this=this;
        var box=document.getElementById(id);                        //总容器
        this.ul=box.getElementsByClassName('list')[0];                //ul
        this.aLi=this.ul.getElementsByTagName('li');                //li集合
        this.len=this.aLi.length;                                    //li个数
        this.liWidth=parseInt(getStyle(this.aLi[0],'width'));        //一个li的宽度
        this.aBtn=box.getElementsByClassName('btn')[0].getElementsByTagName('li');    //按钮集合
        this.curindex=0;                                                //每一个对象的计数器
        this.timer=null;                                                //每一个对象的定时器
        this.tab();    
        this.autoplay();    
    }
    Slide.prototype.tab=function(){
        for (var i = 0; i < this.aBtn.length; i++) {
            this.aBtn[i].index=i;
            this.aBtn[i].onmouseover=this.tabover;
        }
    };
    Slide.prototype.tabover=function(){
        for (var i = 0; i < _this.aBtn.length; i++) {
            _this.curindex=this.index;
            _this.aBtn[i].className='';
        }
        _this.aBtn[_this.curindex].className='active';
        startMove(_this.ul,'left',-_this.curindex*_this.liWidth);
    }
    Slide.prototype.autoplay=function(){
        this.timer=setInterval(this.autoli,1000)
    };
    Slide.prototype.autoli=function(){
        _this.curindex++;
        if(_this.curindex==_this.len){
            _this.curindex=0;
        }
    }
PHPz
PHPz

学习是最好的投资!

全部回复(1)
高洛峰

启动定时器的时候你只是改变了_this.curindex,没有执行startMove();

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号