我最近一直在处理一些基本的动画,并试图同时遵循良好的网络实践。我遇到的问题是在没有使用预设的css方法在页面加载之前隐藏元素时图像闪烁。
通过用我的普通css隐藏元素然后用javascript显示它来防止闪烁很容易,但是如果有人禁用了javascript,那对我来说似乎是一种可怕的做法。
我是否应该使用HTML5功能在标题中添加<noscript>
标记,然后使用单独的样式表为不使用javascript的用户设置不透明度和位置到最终设置?这是最优雅的解决方案吗?
我已经开始使用greensock(gsap)库到TweenLite.from
,因为我可以将所有内容设置为css中的最终状态,但是当页面第一次出现时,我会得到轻微的图像/文本闪烁加载。我喜欢这个解决方案,因为我可以设置所有css,因为它将适用于没有javascript的人,并且它允许我轻松地从一个点动画到一个现有点,而不是像我必须使用Javascript那样向后工作jQuery的。但是,仍然存在图像闪烁,这是不可接受的。页面预加载器会解决这个问题吗?
这些天普遍认同的做法是什么?我也担心搜索引擎优化以及将内容设置为visibility: hidden
或display:none
然后将其设置为动画的后果。谷歌蜘蛛是否会阅读javascript?
Here's an example of the screen flicker and animations I'm talking about.
答案 0 :(得分:0)
查看HTML5 Boilerplate和Modernizr。
它附带了一个智能解决方案,以查看客户端是否在CSS中启用了JavaScript。
默认情况下,类no-js
应用于HTML标记,然后由Modernizr替换为js
。这样您就可以相应地限定CSS选择器。
示例CSS:
.no-js .foo { }
.js .foo { }
这应该足够快,执行启用JavaScript的客户端看不到no-js
样式。
参考文献: