js滚动加载小插件

Posted 小小坤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.回掉函数返回滚动加载后的数据,接收并进行处理。








以上是关于js滚动加载小插件的主要内容,如果未能解决你的问题,请参考以下文章

H5自定义滚动插件——DeftScroll.js,可自定义滚动条

angularJS使用ocLazyLoad实现js延迟加载

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

页面滚动图片等元素动态加载插件jquery.scrollLoading.js

根据显示设备的不同加载不同的JS

JQuery实现文字无缝滚动效果 Marquee插件