Javascript动画:IE vs其他浏览器
Javascript animation: IE vs other browsers
在我开始讨论我所面临的具体问题之前,我只需要问:使用IE8作为构建网站的参考,特别是使用JavaScript动画的网站,这是一个错误吗?我问这个问题是因为我已经写了一个相当简单的动画页面,大部分是从头开始,即使我对HTML和JavaScript语言的掌握很差,使用IE8来监控进度。我已经调整了代码,使其在IE8(兼容模式关闭)中工作得很好,但当我在Safari和Chrome中尝试时,它在动画中做了一些奇怪的打嗝。
我发现很多问题都是相反的:除了IE,它在任何地方都能很好地工作。所以我想知道,我应该使用不同的浏览器供我参考吗?或者是否有更好的方法使其与所有浏览器兼容?这是如此令人沮丧(我相信你们大多数人会同意)必须处理不同浏览器的不同解释。
谢谢你的帮助!
注。我还没有为Mozilla编写代码。
从性能的角度来看,使用ie8作为参考并不是一个坏主意,因为它的js和渲染性能较弱。使用ie7会更好。
跨浏览器兼容性方面,你使用什么并不重要——除非你使用像jQuery这样的跨浏览器库作为动画的基础,否则你将不得不为各种js和渲染引擎编写特定的代码。
即使你使用像jQuery这样的库,你仍然会遇到渲染问题,因为各种html/渲染引擎在浏览器中是不同的。Chrome/safari使用webkit, firefox使用gecko等。
唯一正确的方法是在项目开始时定义您希望支持的浏览器,然后在开发代码时测试您在所有浏览器中所做的工作
如果你正在制作动画,我建议你利用css过渡而不是通过javascript控制元素-你将有机会利用图形硬件以及更有效地绘制像素。
如果你仍然需要在不支持这些css过渡的浏览器中执行动画(在ie9中有些,在ie6-8中没有),那么你可以使用像modernizr这样的工具来检测哪些是可用的,并在这些功能不可用的情况下控制这些元素。
通常,动画是额外的-所以我已经很成功地为IE用户放弃了动画-如果你制作缓慢的,javascript驱动的动画只是为了为IE用户工作,你是在惩罚使用更好浏览器的用户。
当然是我的0.02美元
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- java脚本在Chrome和其他浏览器中对LocaleTimeString的不同行为
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- 如何隐藏空<span>在IE中使用javascript.(注意,在其他浏览器中工作正常)
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- 带有Safari的Javascript;不起作用——所有其他浏览器都起作用
- Javascript可以在chrome中使用,但不能在其他浏览器中使用
- 有没有一种方法可以在过滤掉iOS Chrome、Firefox和其他浏览器的同时检测iOS safari
- 在其他浏览器中打开页面时,令牌未保存在$window.sessionStorage中
- 无法从IE中的data.responseText获取结果,但在其他浏览器中工作
- 在Firefox中使用锤子捏 错误地定向 - 适用于所有其他浏览器
- 索引在IE中导致错误;在其他浏览器中工作
- 将JSON对象转换为敲除observable在IE8中不起作用,但在所有其他浏览器中都起作用
- Javascript可以在Safari上运行,但不能在任何其他浏览器上运行
- 滑动在IE中不起作用.但它在所有其他浏览器中都能正常工作
- 滑块图像在Internet Explorer中不起作用,但在其他浏览器中有效
- 我怎样才能摆脱chrome或其他浏览器中的录音符号
- 这个JavaScript / jQuery代码是否在ie8或其他浏览器中泄漏