IE 下 setInterval 的工作问题

咳,博客地址,欢迎猛击:http://yysource.sourceforge.net

首先,setInterval 的用法如下:

function func() {
	setInterval("alert()", 1000, this);	// chrome 适用, 但不能传参数
	setInterval("alert", 1000, this);	// chrome、ie8 都不适用
	setInterval(alert, 1000, this);		// chrome 适用,可传参,ie8适用,不可传参
}

IE8 用 setInterval 是不能正常工作的,特别是想用它来反复访问一个地址的时候,ie会发现你访问的是一个已经加载过的地址,于是就不再访问,而从本地缓存中加载。所以要在反复访问的地址中加入随机数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
兼容IE的JS跑马灯的实现方式有很多,其中一种比较常见的方式是使用定时器和DOM操作实现。具体步骤如下: 1. 首先获取跑马灯元素和其内部的文本内容; 2. 通过计算文本内容的宽度和跑马灯元素的宽度,判断是否需要滚动; 3. 如果需要滚动,则使用定时器定时更新跑马灯元素的left值,实现滚动效果; 4. 在IE浏览器中,需要使用document.documentElement.scrollLeft属性来获取页面滚动距离。 以下是一段简单的兼容IE的JS跑马灯代码示例: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS兼容IE跑马灯</title> <style> .marquee { width: 200px; overflow: hidden; border: 1px solid #ccc; } </style> </head> <body> <div class="marquee" id="marquee">这是一段跑马灯文本内容</div> <script> var marquee = document.getElementById('marquee'); var text = marquee.innerText || marquee.textContent; var speed = 50; // 滚动速度,单位为像素/秒 var timer, start, end; // 判断是否需要滚动 if (marquee.offsetWidth < marquee.scrollWidth) { marquee.innerHTML += marquee.innerHTML; // 复制一份文本内容 start = new Date().getTime(); // 记录开始时间 end = start + (marquee.scrollWidth / speed * 1000); // 计算结束时间 timer = setInterval(function() { var now = new Date().getTime(); // 获取当前时间 var left = (now - start) / 1000 * speed; // 计算滚动距离 if (now >= end) { // 到达终点 clearInterval(timer); left = marquee.scrollWidth / 2; // 滚动回起点 setTimeout(function() { marquee.style.left = -left + 'px'; start = new Date().getTime(); end = start + (marquee.scrollWidth / speed * 1000); timer = setInterval(arguments.callee, 20); }, 1000); } else { // 滚动中 marquee.style.left = -left + 'px'; if (document.documentElement.scrollLeft > 0) { // 兼容IE document.documentElement.scrollLeft += 1; } } }, 20); } </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值