`
keron
  • 浏览: 30936 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

【转】仿 Google Reader 随滚动条滚动加载页面效果

阅读更多

Google阅读器上 有一个AJAXscollLoad效果很不错,就是阅读项目时不需要翻页,浏览器滚动条往下拉到一定位置时自动加载新的一批项目进来,一直到所有项目加载完为止。对于我来说 再好不过了,因为我很不喜欢翻页,尤其是输入页码再定位到页。要知道,数据量增加很频繁时,要通过定位页码来找到目标数据似乎并没有什么意义。我觉得用户 体验成熟的WEB应用程序应当引导用户使用TAG或搜索等功能来找到目标数据。至于浏览数据,尤其是浏览最新的数据,利用浏览器滚动条来加载,是很好的尝试……

我试着用jquery来实现这个功能。先要得到滚动条的总长属性值:scrollHeight,还有滚动条当前位置属性 值:scrollTop。然后通过计算,若当前值位于总长值三分之二时加载新数据。假设DOM上有一个元素为<div id=”mypage”></div>,该元素overflow样式为scroll,也就是元素中的内容溢出元素指定高度时启用滚动 条。利用jquery的load方法为元素加载一个已经存在的文件,我假设它是table.html。这个文件的内容可以是足以使浏览器滚屏的一张数据表。

<!--more-->

<script type=”text/javascript” src=”jquery.js“>//加载jquery库</script>
<script type=”text/javascript”>

var hght=0;//初始化滚动条总长
var top=0;//初始化滚动条的当前位置
$(document).ready(function(){//DOM的onload事件
$(”#mypage”).load(”table.html”);//table.html的内容被加载到mypage元素

$(”#mypage”).scroll( function() {//定义滚动条位置改变时触发的事件。
    hght=this.scrollHeight;//得到滚动条总长,赋给hght变量
    top=this.scrollTop;//得到滚动条当前值,赋给top变量
});
});

setInterval(”cando();”,2000);//每隔2秒钟调用一次cando函数来判断当前滚动条位置。

function cando(){
if(top>parseInt(hght/3)*2)//判断滚动条当前位置是否超过总长的2/3,parseInt为取整函数
    show();//如果是,调用show函数加载内容。
}

function show(){
$.get(”table.html”, function(data){//利用jquery的get方法得到table.html内容
    $(”#mypage”).append(data);//用append方法追加内容到mypage元素。
    hght=0;//恢复滚动条总长,因为$(”#mypage”).scroll事件一触发,又会得到新值,不恢复的话可能会造成判断错误而再次加载……
    top=0;//原因同上。
});
}

</script>
<div id=”mypage”></div>

为 什么要隔2秒钟调用一次判断呢?因为只要$(”#mypage”).scroll事件一被触发,就会影hght和top值,这个值可能总是满足cando 函数的判断,也就是top值总是位于hght的三分之二。因此可能会多次加载造成服务器负担加重。而每加载一次后把hght和top值赋0,也是这个原 因。

这段代码的效果就是只要元素mypage的滚动条位置位于滚动条总长的三分之二时,追加table.html的内容到元素mypage 中去。当然这样运行是无休止地加载下去。在真正的AJAX运用中,table.html可以换成asp或php脚本,接收get或post参数来进行处 理,然后返回有意义的数据。jquery的get方法可以设置get方式的参数数据,比如:

$.get(”test.php”, { name: “boho”, id: “1″ } );

相当于http://hostlocal/test.php?name=boho&id=1这种形式的http访问。然后通过get方法的回调函数来获取test.php输出的内容:

$.get(”test.php”, {name:”boho”,id:”1″},function(data){
alert(”Data Loaded: ” + data);
});

分享到:
评论
1 楼 jxufeboy 2011-11-13  
                    表情图标

相关推荐

    google reader

    google reader google google google

    Google Reader的四个常用小技巧

    ### Google Reader的四个常用小技巧 #### 一、导入与导出订阅列表(OPML 文件) 在使用Google Reader的过程中,可能会遇到需要迁移订阅列表的情况,比如从其他RSS阅读器(如Bloglines)迁移到Google Reader。这时...

    把Google Reader搬到桌面上

    很多朋友跟我一样,喜欢用Google Reader(Google阅读器)来订阅各种RSS资讯,比如Google提供的财经、娱乐、体育等RSS资源。可是,每次要阅读这些资讯,必须打开网页浏览器,登录Google Reader,然后才能阅读,不是很...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据展示。 首先,`Ext.Panel`是一个可配置的容器,它可以包含其他组件,如按钮、表格、表单等。它提供了丰富的布局管理,如`fit`...

    设置Adobe Reader /ACROBAT上次打开阅读的PDF页面

    在使用Adobe Reader或Acrobat阅读PDF文档时,有时我们需要在下次打开同一个文件时能直接回到上次阅读的位置,以便继续之前的工作或阅读。这个功能对于经常处理大量PDF文档的用户来说非常实用,避免了每次打开文档都...

    Apabi Reader CEB转PDF工具

    《Apabi Reader CEB转PDF工具详解》 在数字化阅读的时代,不同的电子书格式为用户提供了多样化的选择。其中,CEB(中国电子书标准格式)是Apabi Reader支持的一种专用格式,它拥有良好的版权保护机制,但在某些情况...

    google reader shared items

    在浩瀚如烟的互联网信息中,如何有效的获取自己需要或者有意义的信息不是一件容易的事,尽管有了Google reader、抓虾和鲜果等RSS阅读器,但我们在订阅了许多频道之后总感觉还是不尽兴,要么觉得订阅得太多、太杂乱,...

    PDF Reader

    - **阅读与浏览**:PDF Reader的核心功能是提供清晰、流畅的PDF文档阅读体验,支持页面缩放、翻页、书签添加等。 - **搜索与高亮**:用户可以快速搜索文档中的关键词,并对重要信息进行高亮标记。 - **注释与编辑...

    gReader Pro (Google Reader) 4.0.3_pro

    软件名称:gReader Pro(Google Reader) APK名称:com.noinnion.android.greader.readerpro 最新版本:4.0.3_pro 支持ROM:4.0.3及更高版本 界面语言:简体中文 软件大小:5.64 M 开发者:noinnion 这款gReader Pro...

    PythonReader.rar

    此外,PythonReader可能还具备一些高级功能,比如搜索和高亮特定的Python函数,或者保存和加载`.rpy`文件的记录,方便日后查阅。这些特性可以帮助用户更好地管理和组织学习材料,进一步提升学习效率。 总结来说,...

    FoxitReader_AX_Pro.zip

    《使用Delphi与FoxitReader AX Pro实现PDF处理与转换技术详解》 在软件开发过程中,处理PDF文档是一项常见的需求,无论是阅读、编辑还是转换,都需要借助特定的库或者组件来实现。本篇文章将深入探讨如何在Delphi...

    DarkReader4.6.12.zip

    4. 在扩展程序页面的右上角,启用“加载已解压的扩展程序”按钮。 5. 在弹出的文件选择器中,导航到之前解压缩的 DarkReader 文件夹,然后点击“选择文件夹”。 标签 "darkreader" 明确地指出了这个主题与 Dark...

    pdfreader

    1. **快速打开与浏览**:PDFReader能够快速加载大型PDF文件,让用户在几秒钟内就能查看到内容。其优化的渲染引擎确保了流畅的滚动和缩放体验,无论是文字还是图像都能清晰呈现。 2. **注释与编辑**:软件提供多种...

    chrome黑色主题插件 Dark Reader

    用户只需在Chrome浏览器的扩展程序管理页面加载.crx格式的插件文件,即可快速安装。对于提供的"Dark Reader_4.9.4_chrome.zzzmh.cn.crx"文件,这应该是Dark Reader的某个版本,用户可以直接拖拽该文件到浏览器的扩展...

    koodo-reader免安装koodo-reader免安装koodo-reader免安装

    《Koodo Reader免安装版详解与Java技术探讨》 Koodo Reader是一款广受欢迎的电子阅读软件,尤其因其简洁的界面和强大的功能而受到众多用户的喜爱。在标题和描述中反复强调“免安装”,意味着我们关注的是Koodo ...

    ReadEra Android book reader

    ReadEra book reader pdf epub word_v20.05.22+1210 ReadEraPremium19.12.271120armv8 ReadEra is an Android application for reading books and viewing documents, free and without ads.

    Google Reader即将关闭 如何备份转移RSS订阅.docx

    【Google Reader关闭与RSS订阅备份转移】 随着Google宣布Google Reader将在2021年7月1日后停止服务,用户需要采取行动备份并转移他们的RSS订阅。Google提供了Google Takeout服务,让用户可以方便地导出包括追踪列表...

    C#使用Adobe Reader读取PDF

    当我们需要在C#应用中处理PDF文档时,通常会借助第三方库或控件,如Adobe Reader SDK。本文将深入探讨如何在C#中利用Adobe Reader来读取PDF文件。 首先,Adobe Reader是一款流行的PDF阅读器,它提供了API接口供...

    js加载base64图片

    - 对于较大的图片,可能需要考虑分块加载或懒加载策略,以减少初始页面加载时间。 - 使用CDN服务存储Base64字符串,或者使用Web Worker处理Base64编码,以减轻主线程负担。 通过以上介绍,我们可以了解到...

    使用Google Reader的10个技巧.docx

    【Google Reader 使用技巧详解】 Google Reader 是一款强大的RSS订阅服务,可以帮助用户管理和跟踪他们感兴趣的网站内容。以下是对标题和描述中所述的10个使用技巧的详细解释: 1、**照优先级分类订阅**: 在...

Global site tag (gtag.js) - Google Analytics