2012-11-27 34 views
1

我在CSS中有一些display:none;的元素,并且有些jQuery会在延迟时间中淡化它们。jQuery - 如果JavaScript被禁用会怎么样?

如何处理JavaScript关闭的浏览器?有没有使用<noscript>来改变这些元素显示值的方法?

+0

想一想吧。脚本禁用时,如何在脚本标记中运行脚本? – asawyer

+0

难道你不能把CSS覆盖'noscript'标签中的这些值吗? – Chad

+0

取决于。为什么你会淡入这些元素,而不是从一开始就看到它们? –

回答

1

如果使用Modernizr的,它会插入类js到您的<html>标签(如果JavaScript是运行过程中的),并具有HTML5 boilerpate提出的HTML结构:

<!--[if lt IE 7 ]> <html class="no-js ie6 ie"> <![endif]--> 
<!--[if IE 7 ]> <html class="no-js ie7 ie"> <![endif]--> 
<!--[if IE 8 ]> <html class="no-js ie8 ie"> <![endif]--> 
<!--[if IE 9 ]> <html class="no-js ie9 ie"> <![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> 
<html class="no-js"> 
<!--<![endif]--> 

默认情况下,你将有<html class="no-js">,你可能有一些事情(你是担心被暴露,通常JS隐藏s)在你的css中默认使用它作为父选择器来隐藏它。

.no-js .whatever, .no-js .someOtherStuff { display: none; } <!-- just an example --> 
+1

无论如何,由于我使用的是modernizr,所以这是最终的最佳选择。使用'。no-js'显示在某个特定时间消失的元素是解决javascript禁用问题的最佳方法。谢谢! – Jamesking56

+0

很高兴帮助詹姆斯!很高兴你提起这件事,哈哈,我不得不考虑自己为某些事情做这件事。 –

2

不能在没有脚本的情况下设置CSS值,但可以将默认设置为可见状态,并且您在脚本中执行的第一件事情是在淡入淡出之前立即将元素设置为不可见状态他们。

你也可以看看CSS动画http://www.w3.org/TR/css3-animations/不需要JavaScript的,但他们确实需要一个现代的ISH浏览器http://caniuse.com/css-animation

+0

+1。让脚本隐藏它们,如果脚本需要它们隐藏 – Bergi

+0

感谢它通过隐藏元素首先在我的jQuery中的'$(document).ready'函数,然后运行我的动画,以最小的闪烁工作。我认为这会闪烁,但我想我没有隐藏很多元素。尽管如此,仍需要在IE中进行测试。 – Jamesking56

+0

@Jamesking56我隐约想起做类似的事情,如果你的脚本执行得够早的话(如果onload太晚,可能在onload之前的的脚下),你不会有任何闪烁。 –

0

设置css属性以显示元素,然后如果启用javascript,请使用javascript关闭/隐藏元素。不过,我不喜欢这样做,因为启用了JavaScript的用户数量远远超过了没有JavaScript的用户。您不希望强制大部分用户等待页面加载所有元素,并在内容已经达到峰值时将其隐藏。

您希望实际使用您的网页的用户按照您设计的方式使用,以获得最佳体验。该网站功能丰富的JavaScript,jQuery和其他库,没有JavaScript的用户习惯于没有获得Web开发人员的体验。如果我觉得我真的对没有使用javascript的用户有好感,我会将它们重定向到一个静态页面。他们和网络爬虫将一起玩乐。

相关问题