2011-08-29 36 views
1

我正在開發一款紙牌遊戲。 我有一個ASP.NET頁面,有大約52張小圖片(卡片),總共說300 KB。asp.net隱藏顯示,同時加載很多圖像

第一次加載頁面時效果很難看:用戶可以看到每張卡片依次加載。 此外,僅在頁面加載後顯示一些圖像。

因此,大問題:

我不能讓從ASP.NET隱藏圖像,因爲如果隱藏他們根本就沒有「動態生成」 aspx頁面內呈現!

當然,當我使用從windows.onload事件觸發的js函數時,用戶將看到所有圖像,然後我可以將它們隱藏在javascript中!

骯髒的方式是創建一個Div,因爲我使用絕對定位,所以會顯示在所有其他對象的前面。

我敢肯定你的所有大師,你有更好的想法!...

回答

1

如果所有的圖像都包含在一個單一的元素(比如,div),那麼你可以將其CSS設置爲display: none默認情況下,即使在頁面渲染期間它也不會向用戶顯示。然後,當所有的內容被加載時,顯示給用戶。事情是這樣的:現在

<style type="text/css"> 
    #imageContent { display: none; } 
</style> 
<div id="imageContent"> 
    <!-- your images are here --> 
</div> 
<script type="text/javascript"> 
    // assuming jQuery because, well, come on 
    $(document).load(function() { 
    $('#imageContent').show(); 
    }); 
</script> 

,這不保證它不會需要很長時間的圖像加載,導致用戶沒有看到其中的任何一段時間。如果其中一些未能加載,我不確定會發生什麼。我想象一旦DOM放棄嘗試加載失敗的資源,事件仍然會觸發。

當然,你會想要圍繞所有這些設計風格,以便從無圖像到所有圖像的過渡是一種流暢的用戶體驗。如果需要一些時間,那麼當圖像突然加載並移動東西時,用戶可能已經與頁面進行交互(我還沒有看到您的頁面,所以也許這不是問題。)

所以,你會想要測試像這樣一個已知的緩慢連接或已知的破碎圖像,看看它是如何表現。

1

我對這樣的事情在不同的jQuery庫中經常會這樣做有點小想法。 這個想法是將所有卡片打包在一張圖片中,並通過將此圖片設置爲div的背景並更改偏移量來顯示圖片的不同圖案。

谷歌這樣做,例如。看一看: http://www.google.ru/images/nav_logo83.png 這是在SERP中使用的元素