zoukankan      html  css  js  c++  java
  • 关于页面加载的方法收集

    完美的 jQuery 网页进度条

    给自己的博客加上一个 LOADING… 进度条,这好像是一个很老很老的话题,两年前就已经有人用各种方法去实现它了。结合之前的前辈写的代码,我重写了一次。

    最初我在 AW 的博客上看到的给页面加上Loading效果最简单实用的办法,他介绍的是使用纯的 CSS 跟 JavaScript 实现的效果。

    原理是:在页面中写一个 LOADING… 的提示,利用 JavaScript 在 HTML 加载完时给 LOADING… 这个 DIV 设置隐藏。

    后来在 iShawn 的博客上看到jQuery 页面载入进度条,用了 jQuery 动画漂亮很多。

    原理是:在页面的不同位置放置多个 JavaScript 代码,每个 JavaScript 代码逐步增加 LOADING… 的宽度,到最后加载完隐藏。

    AW 跟 iShawn 都介绍了 LOADING… 的原理,明白了之后自己动手改造一下吧。我发现 iShawn 的博客的进度条不仅是在载入的时候能出现,而且在点击外部链接以及网页能的 JavaScript 事件的时候都能出现

    为什么要网页进度条

    如果你只想实现效果,这个小层次可以忽略过去。

    Analytics的统计数据表明,加入了这一效果之后,用户的“平均停留时间”的确有所提高。可见,一个“正在加载”让许多用户都有更多的耐心等待,而不会因为屏幕空白太久而不耐烦地离开。

    via AW

    还有一段时来自刘未鹏的:

    进度条的设计是一个很多人都知道的故事:同样的耗时,如果不给任何进度提示,只是在完成之后才弹出一个完成消息,中间没有任何动态变化,那么整个过 程就会让人等得非常焦急,导致一些人干脆把程序关了了事。如果有进度不断更新,那么对整个过程耗时的心理感受就会远低于实际值,用户也不会郁闷到把程序关 了。(你有多少次在银行处理手续的时候,看着工作人员把一堆材料不停地倒腾来去,心里多希望他们可以在柜台小窗口上投影一个进度条?)

    这里的原因在于,没有进度提示的话,我们无法判断这个等待什么时候才是个尽头。如果有不断增长的进度条,那么我们对于什么时候会达到100%就会有 一个粗略的估计,这个估计是一剂定心丸,让我们知道这事情总会并且会在不久的将来完成。

    via Mind Hacks

    网页进度条可以增加网站的用户体验,不过用户体验不是增加一个网页进度条。

    网页进度条实现原理

    原理一:在页面中放一个用固定定位的 LOADING… 的提示,这个提示可以是图片、文字或者一段加载的动画,利用浏览器是先加载完成 HTML 文档之后加载 CSS 最后加载 JavaScript 的原理,在加载到最后用 JavaScript 把 LOADING… 所在的 DIV 设置隐藏即可。

    预览效果

    原理二:根据网页加载时按照 HTML 文档中 JavaScript 的先后顺序执行,给进度条显示百分比数字,但这个效果并不完美和准确。

    预览效果

    原理三:利用 JavaScript 实现,凡页面能的 JavaScript 被触发也显示 LOADING… ,待事件完成之后隐藏。

    预览效果

    网页进度条的实现办法

    网页进度条的实现办法 AW 跟 iShawn 已经在他们的博客上说得很清楚了,效果也即是上面小节的原理一和原理二。我会重新实现一次原理一、二,而且实现原理三的效果,即点击站内链接、JavaScript 事件显示 LOADING… 的办法。

    准备工作没有什么,最主要的是给网页加载 jQuery 库(其实不一定非要 jQuery 实现,但能方便很多):

    在网页的</body>标签前插入下面的代码:

    1. <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js'></script>

    在网页的<body>...</body>之间插入<div id="status">LOADING...</div>

    CSS 文件可以这样写(后有针对 IE6 的 CSS HACK):

    1. #status{
    2. background:none repeat scroll 00#27BCEF;
    3. border-bottom:1px solid #888888;
    4. border-right:1px solid #888888;
    5. color:#FFFFFF;
    6. float:right;
    7. font-size:11px;
    8. left:45%;
    9. letter-spacing:2px;
    10. padding:6px12px;
    11. position:fixed;
    12. text-align:center;
    13. top:20%;
    14. z-index:999;
    15. _position:absolute;
    16. _bottom:auto;
    17. _top:expression(eval(document.documentElement.scrollTop));
    18. _margin-top:20%;
    19. }

    JavaScript 文件这样写(务必放在 jQuery 库后面):

    1. <script type="text/javascript">
    2. $('#status').fadeOut(800);
    3.  
    4. $("a[rel!='nofollow']a[rel!='external'][target!='_blank']a[class!='load']").click(function(){
    5. $("#status").fadeIn(400);
    6. setTimeout(function(){
    7. $("#status").fadeOut(400)
    8. },
    9. 4000)
    10. });
    11.  
    12. $("a[href*='#'],a[rel='external nofollow'],a[href='javascript:void(0)'],a[href='javascript:reset_captcha('')']").click(function(){
    13. $("#status").fadeOut(400)
    14. });
    15. </script>
  • 相关阅读:
    WebSocket
    使用fiddler将网站上的css js重定向至本地文件
    chrome浏览器调试线上文件映射本地文件
    xul 创建一个按钮
    模板小程序】求小于等于N范围内的质数
    哈希-------开放寻址法-------暴雪哈希
    建造者模式(build pattern)-------创造型模式
    抽象工厂模式(abstract factory pattern)------创造型模式
    工厂模式(factory pattern) ------创造型模式
    文件名中含有连续字符abc,相应文件中也含有字符串abc
  • 原文地址:https://www.cnblogs.com/wangli-66/p/5558995.html
Copyright © 2011-2022 走看看