Javascript setTimeout递归不会'不适用于Chrome和Firefox
Javascript setTimeout-recursion doesn't work with Chrome and Firefox
下面的代码用于将一个div滑入另一个隐藏的溢出div(用于未来网站的概念)。"下一个"answers"上一个"链接下方的文本框用于指示x值。有了IE8,一切都很好。
对于Chrome和Firefox,它似乎只执行一次(一步)功能,包括"next"answers"prev",这意味着setTimeout不会运行。
<html>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<head>
<script type="text/javascript">
var ie5 = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);
function next(startx, fadeStep, end){
if(startx > end){
startx -= Math.round((1/Math.pow(fadeStep,0.6)));
if (startx < end) startx = end;
document.getElementById('lastname').value = startx + "px";
document.getElementById('test1').style.left = startx + "px";
fadeStep += 0.00035;
args = "next(" + startx + "," + fadeStep + "," + end + ")";
setTimeout(args, 20);
}
}
function prev(startx, fadeStep, end){
if(startx < end){
startx += Math.round((1/Math.pow(fadeStep,0.6)));
if (startx > end) startx = end;
document.getElementById('lastname').value = startx + "px";
document.getElementById('test1').style.left = startx + "px";
setTimeout('prev(' + startx + ',' + (fadeStep+0.00035) + ',' + end + ')', 20);
}
}
</script>
</head>
<body>
<div style="position:relative;width:570;height:78;overflow:hidden">
<div id="test1" style="position:absolute;left:0px;top:0px;width:1180;height:78">
<img src="http://img38.imageshack.us/img38/7225/imageva.png" border=1>
<img src="http://img577.imageshack.us/img577/5554/image2te.png" border=1>
</div>
</div>
<div style="position:absolute;left:900px;top:0px;width:800">
<a href="#" onclick="next(0, 0.001, -570)">Next</a><br />
<a href="#" onclick="prev(-570, 0.001, 0)">Previous</a></ br>
<form><input type="text" id="lastname" value="gfgfg"/></form>
</div>
</body>
</html>
你能帮忙吗?
在这种情况下,使用setTimeout可能是更好的方法,如下所示:
window.setTimeout(function() { next(startx, fadeStep, end); } , delayInMiliseconds);
然而,缺少"window."对象前缀可能是您的功能无法在这些浏览器中工作的另一个原因。
如果你还有其他问题,请毫不犹豫地问。
如注释中所述,使用jQuery将节省大量时间。
致问候,
相关文章:
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- JavaScript不显示剩余字符,但适用于其他页面
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- 为什么这只适用于身体部分而不是头部
- 为什么不't此正则表达式适用于重复出现的对
- document.getElementById 对内部 html 的调用适用于 $_POST 和 $_GET 变量,但不
- JavaScript 位置适用于本地主机而不是服务器
- Rally App SDK 2.0:Rallymultiobjectpicker,适用于不显示displayField的
- jQuery事件在Mozilla上不起作用,并且适用于其他浏览器
- Angular.js - 控制器不为索引执行,适用于其余模板
- D3 .on 更改适用于文本而不是图表
- Zillow 数据 - json_encode不起作用 - 适用于常规变量
- 弹出模式仅适用于表格中的第一个元素,第二次单击后不会再次打开
- Phonegap Android项目适用于模拟器,而不是实际的手机
- ajax jonp 不应该适用于 请求的上不存在“访问控制-允许源”标头
- AngularJS:ng-单击不起作用,适用于<按钮>
- Javascript不会在移动设备上加载.适用于桌面
- 为什么我的代码适用于高度:100px,而不是高度:100%
- 拖放区.js + Laravel-多文件上传不起作用(仅适用于一个文件)
- 哪些限制适用于不透明响应