js滚动加载小插件

本文实例讲述了jquery滚动加载数据的方法。分享给大家供大家参考。具体分析如下:

少废话直接上代码!!!粗暴,直接,干脆

 0//lk-2017-05-04 

1(function($, win) {
 2      var defaults = {
 3          ‘container‘: ‘#container‘, //容器
 4          ‘sections‘: ‘.section‘, //子容器
 5          ‘searchname‘: ‘全部‘, //搜索名称
 6          ‘url‘: ‘‘, //加载更多数据请求的路径
 7          ‘updata‘: ‘data‘, //更新的数据
 8          ‘page‘: ‘1‘, //第几页
 9          ‘pagenumber‘: ‘10‘, //每页多少条数据
10          ‘backFn‘: function(d) {
11
12          }
13      };
14      //容器与最后一个子容器,状态
15      var container, sections, state = 0;
16      $.fn.isScroll = function(options) {
17          opts = $.extend({}, defaults, options || {});
18          container = $(opts.container);
19          sections = container.find(opts.sections).last();
20          var i = 0,
21              state = 1,
22              _last;
23          container.scroll(function() {
24             var lastdom=container.find(opts.sections).last();
25              if(container.outerHeight() + container.scrollTop() > lastdom.offset().top) {
26                  //防止重复加载
27                  if(_last == lastdom[0]) {
28                      return;
29                  } else {
30                      _last = lastdom[0];
31                  }
32                  if(!state) return; //防止重复加载
33                  state = 0;
34                  //请求数据
35                  $.post( opts.url,{
36                       page: (lastdom.attr("pages") || opts.page),
37                      pagenumber: opts.pagenumber,
38                      name: opts.searchname
39                  }, function(status, data) {
40                      if(status) {
41                          state = 1;
42                          if(typeof(opts.backFn) == "function") {
43                              opts.backFn(‘backFndata‘);
44                          }
45                      }
46                  })
47
48              }
49          })
50      }
51  })(jQuery, window)
/*-------使用方法--------*/

1        /*绑定滚动事件*/
 2      $("#table").isScroll({
 3          container: "#table",
 4          sections: ".list",
 5          searchname: "全部",
 6          url: "wwww",
 7          page: 1,
 8          pagenumber: 10,
 9          backFn: function(data) {
10              console.log(data);
11          }
12      })

html代码

1 <ul id="table" class="table">
2    <li class="list" v-bind:pages="item.page" v-for="item in data_list">{{item.txt}}</li>
3 </ul>

使用方法

 1.此插件基于jquery,必须先加载jquery。

 2.可以绑定到指定的div。

 3.回掉函数返回滚动加载后的数据,接收并进行处理。

时间: 2024-10-18 23:43:30

js滚动加载小插件的相关文章

js滚动加载

背景 移动web开发中,为了加快响应速度,通常在服务端输出首屏页面,动态异步加载listview.而对于包含大量图片的listview,一起加载将耗费大量http请求,进而影响响应速度.滚动加载这时就可以成为一种可选的优化方案. 要点 生成的img标签用一个属性存储图片地址而不是用src document.images 获取当前img标签 isInSight: 是否有元素处于当前可视区域内 window.addEventListener('scroll', lazyLoad, false); 监

vue2.0无限滚动加载数据插件

  做vue项目用到下拉滚动加载数据功能,由于选的UI库(element)没有这个组件,就用Vue-infinite-loading 这个插件代替,使用中遇到的一些问题及使用方法,总结作记录! 安装:npm install vue-infinite-loading –save 引入 ES6 import InfiniteLoading from 'vue-infinite-loading'; export default { components: { InfiniteLoading, }, }

js 滚动加载iframe框中内容

var isIE6 = !!window.ActiveXObject&&!window.XMLHttpRequest; //滚动加载 var scrollLoad =function(){ $("#content iframe[_src]").each(function(){ var t = $(this); if( t.offset().top<= $(document).scrollTop() + $(window).height() ) { t.attr(

Loading加载小插件,用户可以选择html格式或canvas格式,自定义loading图片,canvas色彩搭配可根据个人喜好

;(function($) { $.Loading = function(options) { //暴漏插件默认值 $.Loading.defaults = { speed: 200, //弹出层淡出速度 bgcolor: 'rgba(0,0,0,.7)', //遮罩层颜色,需要rgba格式,默认黑色0.5透明度 type: "html", //默认html样式,也可以是canvas msg: '正在加载...', //默认加载信息 loadPicNum: 2, //为html时loa

HTML 页面加载 Flash 插件的几种方法

前言 之所以写这篇文章,主要是因为组长给提的一个新的需求--使用浏览器调用电脑的摄像头,来实现即时拍照的功能.在网上查了很多资料,由于这样那样的原因,最终选择了使用flash插件来调用pc的摄像头.当然,这个需求是基于B/S架构的,因此,就在想怎么把它嵌入到前端的HTML页面中. 题外话 当然,这里还没有考虑到封装,主要是先以实现为目的,后续工作再根据业务进行抽象,封装成通用的组件.好了,废话不多说,看重点. 嵌入插件 使用 object 和 embed 标签 代码展示 <span style=

滚动加载|页面滑到底部加载数据|jquery.endless-scroll插件|使用demo

<html> <head> <link rel="dns-prefetch" href="http://i.tq121.com.cn"> <meta charset="utf-8" /> <title>滚动加载|jquery.endless-scroll插件|使用demo</title> <script type="text/javascript"

基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多

通过多次爬坑,发现了这些监听滚动来加载更多的组件的共同点, 因为这些加载更多的方法是绑定在需要加载更多的内容的元素上的, 所以是进入页面则直接触发一次,当监听到滚动事件之后,继续加载更多, 所以对于无限滚动加载不需要写首次载入列表的函数, 代码如下: html: //父组件 <div v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance=

一个小例子理解js异步加载

前几天笔试某公司有这样一道题.编写一个javascript函数,可以在页面上异步加载js,在加载结束后执行callback,并在IE和chrome下可以执行. 就这个题我写了一个DOM方法异步加载js的例子,可以给对于异步不了解的朋友参考感受一下. 众所周知,js是一种单线程的语言,它的Event Loop机制可以看一下阮一峰的这篇博客,讲解的很好 http://www.ruanyifeng.com/blog/2014/10/event-loop.html 下面看一下我写的例子 1 <!DOCT

JS异步加载的几种方式

一:同步加载 我们平时使用的最多的一种方式. <script src="http://yourdomain.com/script.js"></script> <script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析,只有当当前加载完成,才能进行下一步操作.所以默认同步执行才是安全的.但这样如果js中有输