2012-08-16 41 views
0

对于一个jQuery插件,替换.show()的图像工作,我必须设置IMG类懒显示:从CSS无使用JavaScript与一类

我知道如何使它看起来当我需要使用jQuery它:

$("img.lazy").show(); 

的问题是,我加载jQuery库在页脚和我需要的图像时的页面开始出现加载。

我不能将代码移动到标题,因为没有jQuery。

所以我想用javascript来做。

我试过getElementbyID,但是我不能让它工作。

任何想法?

+1

为什么不能重新排列你的'

1

好吧,如果你有你的元素ID属性,

document.getElementById("YourId").style.display = "block"; //or inline 

应该只是罚款。

querySelectorAllgetElementsByClassName也可以选择,如果你愿意/能够忽略旧的浏览器。

+0

明白了,ty非常多 – webmasters 2012-08-16 01:28:57

0

试试这个JavaScript。正如你所问,它是独立于jQuery的。该解决方案won't work in IE8 and less

window.onload = function() { 
    var images = document.getElementsByClassName('lazy'); 

    for (var i = 0; i <= images.length - 1; i++) { 
    images.style.display = 'block'; 
    } 
}; 

如果您wan't这个IE的支持,那么你就需要给你的图片唯一的ID,并选择他们是这样的:

window.onload = function() { 
    document.getElementById('lazy').style.display = 'block'; 
}; 

或者jQuery的方法,即使如果您<script>在页脚(加载后的jQuery库,当然):

$(document).ready(function() { 
    $('img.lazy').show(); 
}); 

快速注:大号在页面底部加载jQuery(或任何JavaScript)不会减少加载时间,但会减少感知的加载时间。 Web浏览器仍然必须加载相同数量的内容,这只是庞大的JS文件加载在页面的可见内容之后。我没有包括标签在内的问题。

+0

-1?有人可以解释吗? – 2012-08-16 01:26:25

+0

这就是我,抱歉没有解释,你没有提及在非现代浏览器中缺少对DOM方法的支持。如果这是一个可行的解决方案,我们不需要像JQuery这样的框架。 – marteljn 2012-08-16 01:30:27

+0

@marteljn没有probs。感谢您的解释。我虽然IE6和支持'getElementsByClassName',我刚刚发现它的IE9和。 (GRRR IE ....)你是对的不好的建议。让我解决它。 :) – 2012-08-16 01:32:23