兼容所有浏览器的跑马灯

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS实现无间隙滚动代码</title>
<style type="text/css">
<!--
#marquee_box {
overflow:hidden;
width: 390px;
}
#marquee_box img {
border: 3px solid #F2F2F2;
}
#marquee_img {
float: left;
width: 800%;
}
#marquee_img1 {
float: left;
}
#marquee_img2 {
float: left;
}
-->
</style>
</head>

<body>

<div id="marquee_box">
<div id="marquee_img">
<div id="marquee_img1"> <a href="#"><img src="images/alipay.gif" /><img src="images/logo.jpg" /></a> </div>
<div id="marquee_img2"></div>
</div>
</div>
<script language="javascript">
<!--
var speed = 30; //数字越大速度越慢
var tab = document.getElementById("marquee_box");
var tab1 = document.getElementById("marquee_img1");
var tab2 = document.getElementById("marquee_img2");
tab2.innerHTML = tab1.innerHTML;
function Marquee() {
if (tab2.offsetWidth - tab.scrollLeft <= 0)
tab.scrollLeft -= tab1.offsetWidth
else {
tab.scrollLeft++;
}
}
var MyMar = setInterval(Marquee, speed);
tab.onmouseover = function () { clearInterval(MyMar) };
tab.onmouseout = function () { MyMar = setInterval(Marquee, speed) };
-->
</script>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值