我知道<marquee>
标签是邪恶的
如果滚动文本太糟糕了,那么使用JS来获得相同的效果并不会让它变得更好,对吗?
并且假设我决定使用一些滚动文本(喘气),是否有某种类型的CSS(3?)或HTML(5?)方式来做到这一点在技术上是正确的(即不不建议使用)?
如果没有CSS / HTML解决方案,我应该使用:
或者我应该使用
<marquee>
(&lt; blink&gt;&lt; blink&gt;)标记,它是轻量级的(19字节!),所有渲染模式和所有文档类型的所有浏览器都完全支持(即使它不应该be),但已被弃用?感谢。
P.S。我认为新闻自动收报机是一种有效的选择 P.P.S.如果有人告诉我,如果我不想要一个繁重的Javascript解决方案我应该使用JQuery,因为它是轻量级的,我会在评论中拍摄它们
编辑:我正在添加JQuery标签,因为这似乎是获得许多JS问题专家关注的最佳方式,并且在这里并不完全无关。
答案 0 :(得分:6)
这不是坏的效果。选框,闪烁和字体标签的问题在于它们传达的是演示文稿而不是内容的结构。
答案 1 :(得分:5)
CSS3支持marquee,但只支持少数浏览器(据我所知,Safari和Chrome是唯一的浏览器)
http://www.w3.org/TR/css3-marquee/
有几个JQuery插件可以实现它,但它们的代价是加载JQuery(26Kb,比仅HTML解决方案更重,但不是我称之为重的)
http://plugins.jquery.com/plugin-tags/marquee
当然你可以在没有JQuery的情况下自己轻松完成,但是查看这些插件可能会给你一些想法。
另一个需要考虑的选择是做一个小型Flash动画。
答案 2 :(得分:0)
如果您确定它适用于您所瞄准的所有平台,并且您不关心w3c说什么,您当然可以使用选框标记。您无法找到工作量少于14个字节的JavaScript解决方案。
唯一不幸的是,所有这些浏览器支持所有这些已弃用的元素 - 在这种情况下 - 甚至不是任何HTML标准的一部分 - 是因为所有这些人使用这些元素并在新版本时开始抱怨不再支持他们1982年的网站了。
所以请继续使用选框,只要它适用于您,但如果您的网站停止在较新的浏览器中工作,请不要抱怨。
答案 3 :(得分:0)
Here's the code实现了Firefox中的marquee元素,它基本上是用JavaScript完成的,所以你总是可以调整代码并直接在所有浏览器中使用它。
可以对代码进行黑客攻击,以便可以在Firefox中的任何元素上实现marquee,通过CSS和XBL绑定(Firefox only example)应用。 IE中的等价物是behaviours,你可以在Safari / Chrome中使用CSS3,就像nico建议的那样,你可以将标记内容保留在你的标记中,但只有你知道它是否值得付出努力。 / p>
答案 4 :(得分:0)
我一直在寻找最高效的和跨浏览器支持的选框实现。无论出于何种原因,即使是webkit CSS marquee实现也是一个小故障。
常见的方法是使用timer(或jQuery animate实现)来调整元素的CSS margin属性。这太麻烦而且效率很低。我想出了一些实现,它为支持它的浏览器利用CSS3过渡,并以其他方式为包含元素的scrollLeft
属性设置动画。这是一个实验性的实现,虽然它适用于IE7 +。其他人也可能会发现它很有用,https://github.com/gajus/marquee(演示https://dev.anuary.com/60244f3a-b8b2-5678-bce5-f7e8742f0c69/)。
答案 5 :(得分:0)
最近,我不得不为客户端做这个效果,我使用了这个非常好用的插件: