2011-08-29 37 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中使用的元素