MARQUEE 元素,就是著名的跑马灯,呃,,也可以说它实现了著名的跑马灯效果。省去我们很多的麻烦,它不属于W3C规范中的元素,最初由IE2.0引入,是微软发明的IE浏览器特有的元素,它可以用来创建一个文字滚动区域,并提供了一些特有的属性、方法及事件。
大概因为它看起来确实不错,所以目前所有浏览器都开始支持 MARQUEE 元素。但是具体的实现方式,估计都有不同。
Firefox中marquee对Date对象有依赖
<style>
div {
width: 200px;
background: #DDD;
}
</style>
<script>
Date = null;
</script>
<div>
<marquee behavior="alternate">TEXT</marquee>
</div>在上面的代码中,我将 Date对象置成了空。
打开浏览器,运行页面,”TEXT” 文字在除了Firefox 之外的浏览器之外都跑来跑去的,在 Firefox 中,压根没有看到 ”TEXT” 的影子。将Date=null;去掉,恢复正常。
看来,在 Firefox 里,MARQUEE 的实现和 Date 对象是有关系的。可能 MARQUEE 在Firefox里不是内置的HTML元素,是别的元素加JS代码模拟的也说不行。
Webkit浏览器中 MARQUEE 元素和它的 overflow 值
- HTML code
<style> div { width: 200px; background: #DDD; } marquee { overflow:hidden; }</style><div id="d1"> <marquee behavior="alternate">TEXT</marquee></div>
去掉 marquee{overflow:hidden}; 的设置后,一切正常……
可以打开 Webkit 浏览器,使用它的开发者工具,查看一下 MARQUEE 元素的样式,你会发现,它的 overflow 值是: “-webkit-marquee;”,大概,这就是Webkit内核的浏览器实现 marquee 的秘密吧。
- HTML code
<style> div { width: 200px; background: #DDD; } #d2 { overflow: -webkit-marquee; }</style><div id="d1"> <div id="d2" behavior="alternate">TEXT</div></div>
这个元素虽然标准中尚未支持,用起来还是蛮方便的,但是,用的时候一定注意,在Firefox中不要随便动 Date 对象,在Webkit 浏览器中,不要随便改 overflow 特性。
更多兼容性问题:【分享】浏览器兼容性问题目录
------解决方案--------------------------------------------------------
很不错的内容,收藏
------解决方案--------------------------------------------------------
恩支持
------解决方案--------------------------------------------------------
路过,看看
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
marquee 这个属性增加个无缝滚动属性就强大了
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
- HTML code
<style> div { width:200px; background:#DDD; }</style><div id="d1"><marquee id="m1" behavior="alternate">111</marquee></div><button id="b">Click</button><div id="d2"><script> var a = Date.now; Date.now = null; document.getElementById("b").onclick = function () { Date.now = a; document.getElementById("d2").innerHTML = '<marquee id="m2">222</marquee>'; }</script></div>
------解决方案--------------------------------------------------------
http://mxr.mozilla.org/firefox/source/layout/style/xbl-marquee/xbl-marquee.xml