`
ahead_zhan
  • 浏览: 28762 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JS滚动加载

 
阅读更多

通过window.onscroll 滚动来加载内容

滚动游览器滚动条会触发 window.onscroll 滚动事件,来加载内容
抛弃所有限制代码,那么就剩下 window.onscroll 滚动事件,就立即触发加载内容

window.onscroll -> 判断每次滚动是否到页面底部 -> 准备加载,初始化其他数据

new Object() 空项目;
with 对的元素相同属性缩码
window.onscroll  滚动事件
document.createElement  创建元素
parseInt 转化为整型
window.setTimeout window.clearTimeout 对称关系,有设置set就要清除clear
Math.max 比较大小,取最大值返回
两个数字之间求余 使用“%”

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>Javascript 滚动加载区域数据 (非jQuery)</title>
 </head>
 
 <body>
 <table width="950" border="1" align="center" cellpadding="0" cellspacing="0" id="Table">
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
 </table>
 
 <script>
 var obj = new Object();
 obj.IsGetData = false; //是否存在数据加载
 obj.Time = 0; //时间声明(模拟)
 obj.Index = 1; //编码序号
 obj.div=null;
 //-------------------------------
 // 名 称:window.onscroll,
 // 描 述:游缆器滚动事件
 //-------------------------------
 window.onscroll = function() {
     if (uiIsPageBottom() && !obj.IsGetData) {
         //状态;
         obj.IsGetData = true;
         
         // 知识点:document.createElement 创建元素
         // 加载进度条
         var div = document.createElement("div");
         div.innerHTML = "正在加载数据中..." + obj.Index;
         with(div.style) {
             position = "absolute";
             left = "0px";
             height = "auto";
             width = "auto";
             fontSize = "12px";
             backgroundColor = "#666666";
             color = "#FFFFFF";
             // 知识点:parseInt 转化为整型
             // 对元素滚动定位处理
             top = parseInt(document.documentElement.scrollTop, 10) + "px";
         }
         document.body.appendChild(div);
         obj.div = div;
         //模拟Ajax加载;
         obj.Time = window.setTimeout('GetAjaxData()', 3000); //模拟Ajax加载;使用Ajax数据注释掉本行
     }
     if (obj.IsGetData) {
         obj.div.style.top = parseInt(document.documentElement.scrollTop, 10) + "px";
     }
 }
 //-------------------------------
 // 名 称:GetAjaxData
 // 描 述:模式Ajax加载数据
 //-------------------------------
 function GetAjaxData() {
     // 知识点:cloneNode(true) 克隆元素
     var table = document.getElementById("Table").cloneNode(true);
     // 用于渐变内容区分,知识点: 两个数字之间求余 使用“%”
     table.style.backgroundColor= (obj.Index%2==0?"#999999":"#FFFFFF");
     document.body.appendChild(table);
     //状态
     if (true) {
          // 知识点: window.setTimeout window.clearTimeout 对称关系,有设置set就要清除clear
          // (时间长了耗费系统内存,有可能回导致IE崩溃,所以清除时间点,使用Ajax返回数据注释掉本行)
         if (obj.Time != 0) window.clearTimeout(obj.Time); 
         document.body.removeChild(obj.div);
     }
     obj.IsGetData = false;
     obj.Index++;
 }
 //-------------------------------
 // 名 称:uiIsPageBottom
 // 描 述:判断是滚动到页面底部
 //-------------------------------
 function uiIsPageBottom() {
     var scrollTop = 0;
     var clientHeight = 0;
     var scrollHeight = 0;
     if (document.documentElement && document.documentElement.scrollTop) {
         scrollTop = document.documentElement.scrollTop;
     } else if (document.body) {
         scrollTop = document.body.scrollTop;
     }
     if (document.body.clientHeight && document.documentElement.clientHeight) {
         clientHeight = (document.body.clientHeight < document.documentElement.clientHeight) ? document.body.clientHeight: document.documentElement.clientHeight;
     } else {
         clientHeight = (document.body.clientHeight > document.documentElement.clientHeight) ? document.body.clientHeight: document.documentElement.clientHeight;
     }
     // 知识点:Math.max 比较大小,取最大值返回
     scrollHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
     if (scrollTop + clientHeight == scrollHeight) {
         return true;
     } else {
         return false;
     }
 }
 </script>
 </body>
 </html>
 
分享到:
评论

相关推荐

    JS滚动加载图片

    给需要滚动加载的图片添加上data-url属性,值为图片的真实地址,src属性填写一张默认图片的地址。 方法引用 确定好一个有固定高度,且有滚动条的块级元素后,调用方法imgRunLoading(string id,boolean isConstant)...

    js滚动延时加载

    JavaScript滚动延时加载,也称为懒加载(Lazy Loading),是一种优化网页性能的技术。它主要应用于大量数据或图像的页面,通过只在用户滚动到可视区域时才加载相关内容,从而减少初次加载页面时的数据量,提高页面...

    iscroll.js滚动加载实例详解

    在本文中,我们将深入探讨iscroll.js,一个用于实现高性能滚动效果的JavaScript库,特别是针对滚动加载(infinite scroll)的实例。iscroll.js通过优化滚动性能,使得在移动设备和桌面浏览器上都能流畅地处理大量的...

    页面内容滚动加载

    页面内容滚动加载是一种常见的网页优化技术,也被称为“无限...以上就是关于"js滚动加载"的技术要点,它涉及到前端开发中的JavaScript编程、性能优化、用户体验设计等多个方面,是构建现代网页时不可或缺的一种技术。

    js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法

    今天我们就来看看他们的实现思路和js控制动态加载的代码 下面的代码主要是控制滚动条下拉时的加载事件的 在下面代码说明出,写上你的操作即可,无论是加载图片还是加载记录数据 都可以  别忘了引用jquery类库 $...

    jquery 滚动加载

    jQuery滚动加载,也被称为无限滚动或懒加载,是网页设计中一种常见的优化技术。它允许网页在用户滚动页面到底部时动态加载更多内容,而无需手动点击“加载更多”按钮或者刷新整个页面。这种技术在新闻网站、社交媒体...

    jQuery无限滚动加载图片瀑布流代码

    **jQuery无限滚动加载图片瀑布流代码详解** 在网页设计中,瀑布流布局(Masonry Layout)因其独特的展示方式,能够使页面元素排列得既美观又节省空间,特别适合用于图片展示类网站。jQuery无限滚动加载图片瀑布流...

    JS/dom高性能滚动加载

    在JavaScript和DOM编程中,高性能滚动加载是一种常见的优化技术,主要应用于大数据量、长列表的网页,如社交媒体新闻 feed 或者电商商品列表。这种技术旨在提高用户体验,避免因频繁的DOM操作导致页面卡顿,尤其是在...

    Ajax JQ 滚动加载页面

    Ajax(Asynchronous JavaScript and XML)和jQuery(JQ)结合的滚动加载页面技术,是现代网页开发中的一个重要实践,尤其在大数据量、高交互性的网站中广泛应用。这种技术通过监听用户的滚动行为,当页面接近底部时...

    手机端无限滚动加载

    无限滚动加载,也被称为“滚动触发加载”或“懒加载”,是现代网页和移动应用设计中常见的一种技术。它的核心思想是在用户滚动页面到底部时,动态地加载更多内容,而不是一次性显示所有信息,从而提高了页面加载速度...

    jquery mobile 滚动加载内容

    `js` 文件夹可能包含了实现滚动加载功能的 JavaScript 代码,而 `img` 文件夹则存储了相关的图像资源。 滚动加载的核心在于监听滚动事件,当用户滚动到页面的某个位置时触发。在 jQuery Mobile 中,我们可以使用 `$...

    360网站全屏滚动加载

    360网站全屏滚动加载的实现涉及到多个技术领域,包括HTML、CSS3和JavaScript。下面将详细介绍这些知识点。 首先,**全屏滚动**(Full Page Scrolling)是通过让网页内容占据整个浏览器窗口来实现的。这通常需要对...

    【JavaScript源代码】JavaScript实现滚动加载更多.docx

    综上所述,这个例子展示了如何使用 JavaScript(这里使用 jQuery)实现滚动加载更多功能,结合服务器端 Node.js 应用提供动态数据。用户滚动页面时,页面会自动请求并加载新的新闻条目,直到没有更多数据为止。这种...

    基于JavaScript开发的滚动加载页面图片+源码

    基于JavaScript开发的滚动加载页面图片+源码 基于JavaScript开发的滚动加载页面图片+源码 基于JavaScript开发的滚动加载页面图片+源码 基于JavaScript开发的滚动加载页面图片+源码 基于JavaScript开发的滚动加载...

    jquerymobile滚动加载内容

    本篇将深入探讨如何利用jQuery Mobile和Ajax实现滚动加载内容这一功能,这对于创建无限滚动的网页尤其重要。 一、jQuery Mobile 概述 jQuery Mobile是一个基于jQuery库的轻量级框架,它为移动设备提供了一套统一的...

    php滚动加载加分页小实例

    前端接收到数据后,用JavaScript动态地将这些新数据添加到页面上,从而实现了滚动加载的效果。 此外,为了实现分页,我们需要在页面上显示分页链接或按钮。这可以通过计算总页数(总记录数除以每页记录数,向上取整...

    CSS3+WOW.js网页滚动瀑布流图片加载动画特效

    综上所述,"CSS3+WOW.js网页滚动瀑布流图片加载动画特效"结合了现代Web技术,通过CSS3的动画和过渡效果,配合WOW.js的滚动检测功能,创造出一种吸引人的图片加载体验。同时,良好的文件组织结构也展示了专业的开发...

    无刷新联级,滚动条滚动加载数据

    总结,"无刷新联级,滚动条滚动加载数据"是现代Web开发中的重要技术,它通过JavaScript和Ajax优化了用户体验,使得用户能够在不刷新页面的情况下浏览大量信息。同时,通过监听鼠标滚轮事件,实现滚动加载,使数据...

    JS图片滚动加载 只加载当前屏幕图片

    JS即时加载,当用到图片时才加载,只加载当前屏幕的图片 随着页面滚动加载当前屏幕图片

    jQuery无限滚动加载图片瀑布流代码.zip

    在jQuery无限滚动加载图片瀑布流代码中,核心依赖于jQuery库,特别是这里提到了`jquery-2.0.3.js`版本。jQuery是一个强大的JavaScript库,简化了DOM操作、事件处理、动画以及Ajax交互等任务。在这个项目中,它被用来...

Global site tag (gtag.js) - Google Analytics