javascript - 怎样让鼠标移出时清除鼠标移入的计时器?
大家讲道理
大家讲道理 2017-04-10 16:55:39
[JavaScript讨论组]

我在做一个鼠标移入时的一个修改背景图坐标的图片动画,移入顺序播放到终点时回到中间的一个位置继续播放,移出倒序播放,现在我移出的时候怎么清除移入时的定时器啊?

<script type="text/javascript">
        var imgBox = document.getElementById('left');
        var num = 0;
        var num0 = 15;
        imgBox.onmouseover = function () {
            var timer = setInterval( qute , 50 );
        }
        imgBox.onmouseout = function () {
                clearInterval( timer ); 
                var timerout = setInterval( quteout , 50 );
                if ( num < 0 ) {
                    clearInterval(timerout);
                };
            }
        function qute () {
                num++;
                if ( num == 15 ) {
                    num = 10;
                }
                imgBox.style['background-position-x'] = -num*80 + 'px'; 
            }
        function quteout () {
            num0--;
            if ( num0 < 0 ) {
                num0 = 0;
            }
            imgBox.style['background-position-x'] = -num0*80 + 'px'; 
        }
    </script>
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(4)
PHP中文网

var timer放在onmouseover外面声明,不然clearInterval访问不到timer这个变量

PHP中文网

timer变量放在function外面就好了

ringa_lee

对于公共定义变量 timer 和 timeout 可以在后面function前定义,在function内对变量赋值,重写。

高洛峰

亲js是函数作用域,你把那个对定时器的引用保存到那个函数里面,同作用与下的函数是读取不到的啊当然取消不了啊,你可以先在外面var timer = null,然后在你的鼠标进入是把这个变量赋值为setTimeout

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

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