我一直在做很多的研究,並有大量的插件和教程,其中涵蓋了使用大型背景圖片。不幸的是,他們都有一個共同點 - 他們使用絕對定位的圖像來表現爲「假」背景圖像。jQuery的延遲,直到背景圖像加載,然後淡入?
通常情況下,將工作對我罰款,我過去就這麼做過,但是,這個項目有一個重複的背景圖片,所以這是必要的,我正常使用CSS規則來聲明的背景圖像。
之所以這麼說,有沒有一種方法來檢查,看看是否加載圖像,並告訴了jQuery淡出此背景圖像中一旦裝?我正在尋找的主要事情是jQuery驗證圖像是否實際加載的一種方法。如果不是這樣,那麼我想我需要解決一個簡單的靜態延遲(很遺憾,對於連接速度慢的用戶而言,這種影響會被破壞)。
最後一件事 - 這可以通過CSS類開關/撥動來完成,這樣我可以和之前的圖像加載後變身類?這將是一個沒有JavaScript的用戶的後備,並會使它,所以我不必.hide()
我的整個身體,而背景圖片加載。
*編輯:此線程似乎有類似的討論,但我不認爲這是完全一樣的事情:How do I delay html text from appearing until background image sprite is loaded? *
* EDIT 2 *
看起來像上面的線程畢竟工作,除了我仍然失去淡入效果。我將故事情節設置爲故意高,並且出於某種原因沒有動畫效果,爲什麼?
<script>
$(function() {
// create a dummy image
var img = new Image();
// give it a single load handler
$(img).one('load',function() {
$('html').css('background','url(<?php bloginfo('template_url'); ?>/images/red_curtain.jpg) top center repeat-y').fadeIn(12000); // fade in the elements when the image loads
});
// declare background image source
img.src = "<?php bloginfo('template_url'); ?>/images/red_curtain.jpg";
// make sure if fires in case it was cached
if(img.complete)
$(img).load();
});
</script>
任何想法如何通過切換體類實現效果?我希望它能夠優雅地降級(例如,對於禁用javascript的用戶,不會切換到正文的類) – Brian 2011-03-07 15:48:50