轮播效果,自动播放那里有问题,求大神解答
 var container = document.getElementById("container");
            var list = document.getElementById("list");
            var buttons = document.getElementById("buttons").getElementsByTagName("span");
            var prev = document.getElementById("prev");
            var next = document.getElementById("next");
            var index = 1;//显示小圆点
            var animated = false;
            var interval=2000;
            var timer;
            //小圆点的切换
            function animate(change){
                animated=true;
                var newleft=parseInt(list.style.left)+change;
                var time=100;//位移总时间
                var interval=50;//位移间隔时间
                var speed=change/(time/interval);//每次位移量
                function go(){
                    if((speed < 0 && parseInt(list.style.left)>newleft)||(speed > 0&&parseInt(list.style.left)<newleft)){
                        list.style.left=parseInt(list.style.left)+speed+"px";   
                        setTimeout(go,interval);
                    }

                    else{

                        list.style.left=newleft+"px";
                        if(newleft>-590)
                        {
                            list.style.left= -5310+"px";
                        }
                        if(newleft<-5310)
                        {
                            list.style.left=-590+"px";
                        }
                        animated=false;
                    }   

                } go();
            }

            function showbutton() {
                for (var i = 0; i < buttons.length ; i++) {
                    if( buttons[i].className == "on"){
                        buttons[i].className = "";
                        break;
                    }
                }
                buttons[index - 1].className = "on";
            }
            function play() {
                timer = setTimeout(function () {
                    next.onclick();
                    play();
                }, interval);
            }
            function stop() {
                clearTimeout(timer);
            }
            //左箭头
            prev.onclick=function(){
                if(index==1){
                    index=8;
                }
                else{
                    index -=1;
                }
                showbutton();
                if(animated==false){
                    animate(590);
                }
            }
            //右箭头
            next.onclick=function(){
                if(index==8){
                    index=1;
                 }
                else{
                    index +=1;
                }
                showbutton();
                if(animated==false){
                animate(-590);
            }
            }
            //小圆点点击事件
             for (var i = 0; i < buttons.length; i++) {
                buttons[i].onclick = function () {
                    if (animated) {
                        return;
                    }
                    if(this.className == "on") {
                        return;
                    }
                    var myIndex = parseInt(this.getAttribute("index"));
                    var change= -590 * (myIndex - index);

                    animate(change);
                    index = myIndex;
                    showbutton();
                }
            }

            container.onmouseover = stop;
            container.onmouseout = play;

            play();

        }

    </script>

一直报这个错误
Uncaught TypeError: Cannot set property 'onmouseover' of null
谢谢

3个回答

container有onmouseover方法吗?

不是什么大神。

function play() {
                timer = setTimeout(function () {
                    next.onclick();
                    play();
                }, interval);
            }
function stop() {
      clearTimeout(timer);
 }

container.onmouseover = stop;
container.onmouseout = play;

你这两行代码中有null值,onmouseout不能为null,仔细检查一下stop与play的值,看看在哪儿出了一个null。

stop=function()...

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问