javascript setInterval() 在 Dreamweaver 中有效,但在 Chrome 中无效

标签 javascript google-chrome dreamweaver compatibility setinterval

每当用户单击标签中具有onClick="move()"的菜单图像时,我试图使图像从菜单中向上/向下下拉。到目前为止,图像从页面顶部、菜单后面开始,因此它是隐藏的,然后按预期向下滑动。然而,当图像到达停止点后,当我在 IE 和 Chrome 中测试页面时,再次单击菜单根本没有任何反应。在 Dreamweaver 中,代码按预期执行,能够在图像到达底部后向上滑动图像并再次向下滑动。我尝试更改对 setInterval() 的调用,因为我认为这就是问题所在,但似乎没有任何效果。为什么 Dreamweaver 可以正确执行代码,但 Chrome 或 IE 却不能?

    var onMusic=false;
    var id;
    function move() {
        if(!onMusic) {
          moveDown()        
        }
        else {
            moveUp()
        }
    }


    function moveUp() {
        top=100
        id = setInterval(function() {
            top-=10  // update parameters 
            document.getElementById('guitar').style.top = top + 'px' // show frame
            if (top <= -500)  {// check finish condition
                onMusic=false
                clearInterval(id)
            }
         }, 10) // draw every 10ms
    }

    function moveDown() {
        var top=-500
        id = setInterval(function() {
            top+=10  // update parameters 
            document.getElementById('guitar').style.top = top + 'px' // show frame
            if (top == 100)  {// check finish condition
                onMusic=true
                clearInterval(id)
            }
        }, 10) // draw every 10ms
    }

最佳答案

id 仅在 moveDown 函数的范围内可见。将其设置为全局,以便您可以在 moveUp 中调用 clearInterval(id)

改变

function moveDown() {
    var top=-500
    var id = setInterval(function() {

var id;
function moveDown() {
    var top=-500
    id = setInterval(function() {

每十分之一毫秒更改一次 dom (.1) 可能有点极端......

关于javascript setInterval() 在 Dreamweaver 中有效,但在 Chrome 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494323/

相关文章:

javascript - 事件委托(delegate),Event.target 与 Event.currentTarget

javascript - chrome 扩展 - 从串口读取

html - 为什么我的页面在 Firefox 中有效,但在 Safari 或 Chrome 中无效?

java - Dreamweaver 支持 Java 吗?

regex - 正则表达式更改文本周围的标签,保留文本

css - 在 MAC 和 PC 上的同一浏览器中,网站看起来不同

javascript - 仅执行 'onscroll'函数一次

javascript - 单击播放按钮后延迟视频

javascript - 简单的重构会消除 react 性

javascript - Google Chrome 的 <select> 元素点击错误