javascript setInterval()可以在Dreamweaver中工作,但不能在Chrome中工作
javascript setInterval() working in Dreamweaver but not in Chrome
每当用户单击标签中有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
)可能是一个小的极值。。。
我认为问题是:
top=100
// should be
var top = 100;
你可以试着在控制台中看看我的意思:
>top = 12
12
> top
Window {top: Window, window: Window, location: Location, Proxy: Object, external: Object…}
但我在jsfiddle中又清理了一点:http://jsfiddle.net/pNh57/1/
相关文章:
- setInterval和clearInterval javascript无法按需工作
- 使setInterval和setTimeout工作时出现问题
- clearInterval停止setInterval纯粹基于时间工作
- Javascript setInterval工作不正常
- setInterval() 无法正常工作 - 呈指数级增长
- setInterval 或 window.location 在 Opera、IE 和 Safari 中无法正常工作
- 控制台.log在 setInterval 中无法为 Tampermonkey 工作
- Javascript setInterval在localhost上工作,但确实'Don’我不在现场工作
- setInterval工作setTimeout不工作;t
- setInterval没有'使用jquery mobile时无法工作
- 在MDN setInterval示例中,var intervalID是如何工作的
- ASP表单在服务器上运行,不允许内部HTML按钮onlick setInterval工作
- Javascript 函数 setInterval() 只工作一次
- setInterval 无法正常工作
- 为什么 javascript 中的 setInterval 无法正常工作
- Javascript setInterval 不在 Windows 上的 Safari 中运行,在 Chrome 中工作
- 循环动画javascript,SetInterval只工作一次
- 为什么 SetInterval 不起作用(它只工作一次)
- Cordova/PhoneGap: setInterval() / setTimeout() 无法正常工作
- setInterval() 对于非活动选项卡无法正常工作