当前位置:首页 > 日记 > 正文

JS鼠标滚动分页效果示例

JS鼠标滚动分页效果示例

首先先看问题:

在开发的时候,看到这种现象 就会思考:为什么左边的数据出来比右边的慢呢?因为这里没有进行分页,左边的数据多,所以查询相对较慢。

解决办法就是进行分页,但是在项目中用到的插件,不能控制样式,改变分页的宽度,样式就会乱掉。最简单的办法就是不分页(^_^)

但是既然是自己份内的事,为啥不做好呢?那就写分页呗,滚动分页!

问了其他同事,其他同事也。。。你去百度去。。。。

是啊,网上一大堆 ,但都是乱七八糟的,也没有效果图。。。坑

经过一番思考,和百度 思路来了:

需要了解三个dom元素,分别是:clientHeight、offsetHeight、scrollTop。

clientHeight:这个元素的高度,占用整个空间的高度,所以,如果一个div有滚动条,那个这个高度则是不包括滚动条没显示出来的下面部分的内容。而只是单纯的DIV的高度。

offsetHeight:是指元素内容的高度。依照上面的,那这个高度呢就是DIV内部的高度,包括可见部分及以滚动条下面的不可见部分。

scrollTop:这个是什么呢?他可以理解为滚动条可以滚动的长度。

举例,如果一个DIV高度是400px(即clientHeight为400),而里面的内容是一个很长的列表,内容的高度是1000px(即offsetHeight为1000)。那么,可见部分我们看到400px,1000px的内容中还有600px不可见。而这不可见的部分呢,正是我们通过拉动滚动条才能把这一部分显示出来。你如果滚动条不拉动,此时scrollTop为0,如果你把滚动条拉到底,显示出列表最下面的部分,此时,scrollTop为600。 所以scrollTop的取值区间为[0, 600]。 所以这个600可以理解为滚动条可以滚动的长度。

理解完上面的这个概念之后。要判断是否滚动到底部就很好做了。

首先,我们拉动滚动条,从最上面拉到最下面,变化的是scrollTop的值,而这个值是有一个区间的。

这个区间是: [0, (offsetHeight - clientHeight)]

这里说的已经很明白了,然后我再补充几点:

这个scrollTop 是离滚动窗口的顶部的距离,还有就是要计算这个滚动条离底部的距离 ,要不然滚动事件会多次触发,还会出现往上滚动触发。

相关实现代码:

//滚动进行分页    $(".table-scrollable").scroll(function(){      //获得滚动的高度     var scrollhight = $(".page-risk-sumary .table-scrollable").scrollTop();    //获得滚动窗口的高度     var windowScrollhight = $(".page-risk-sumary .table-scrollable").height();     //获得文档高度 var domhight = $(".page-risk-sumary .table-scrollable").get(0).scrollHeight;     if(scrollhight-17>=domhight-windowScrollhight){      pageNumber = (Number(pageNumber)+1)+"";      if(pageNumber<=showContent.totalPage){        showContent.getContractList({          "pageNumber":pageNumber,          "pageSize": "10",          "focus":"0"        });      }   }  });

这个17 是通过 domhight-windowScrollhight得到的,这个也就是滚动条到底部的距离。

很容易吧,这样就实现滚动分页了!!!

看下效果图:

以上所述是小编给大家介绍的JS鼠标滚动分页效果示例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

相关文章

excel函数值不可用错误怎么解决解

excel函数值不可用错误怎么解决解

函数,错误,方法,解决方法,不可用,  excel的使用过程中经常会出现一些错误,那么值不可用错误就是其中的一种,很常见,那怎么解决这个问题呢?一般情况下,一部分原因是引用的数据是错的,一部分是因为公式的问题,下面给大家分享excel函数值不可用错…

微信小程序实现倒计时60s获取验证

微信小程序实现倒计时60s获取验证

验证码,倒计时,程序,电脑软件,微信小,本文实例为大家分享了微信小程序倒计时获取验证码的具体代码,供大家参考,具体内容如下1、工具类(引用微信小程序提供的工具类)countdown.jsclass Countdown {constructor(options = {}) {Object.assign(thi…

YII2自动登录Cookie总是失效的解决

YII2自动登录Cookie总是失效的解决

失效,解决方法,自动登录,电脑软件,Cookie,前言最近做Yii2自动登录功能,发现即使开启了Yii2的自动登录配置功能,浏览器关闭后,再次打开浏览器还是处于非登录状态。网上查询资料基本没有相同情况。查询登录源码:protected function sendIdentityC…

PS怎么制作清明节字体海报?

PS怎么制作清明节字体海报?

字体,清明节,海报,电脑软件,PS,清明节到了,各路商家或宣传都想设计一个美美的清明节海报,本经验将介绍如何设计一个清明节海报,希望能够帮助读者。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、【打开…

怎么去除PPT中单击此处添加文标题

怎么去除PPT中单击此处添加文标题

单击,方法,教程,步骤,标题,  对于一些经常用PPT做汇报或者开会的白领们,经常会遇到这样的问题,自己辛辛苦苦做好的PPT,却无端冒出了许多&ldquo;单击此处添加标题&rdquo;、&ldquo;单击此处添加文本&rdquo;等内容,那么下面小编就教你怎么去除这…

简单实现JavaScript弹幕效果

简单实现JavaScript弹幕效果

简单实现,效果,弹幕,电脑软件,JavaScript,不知大家有没有感受到,弹幕又是另一出好戏!! 不过我个人还是比较排斥看电视的时候被出来的弹幕打扰。今天我们来写一个简单的弹幕。简单到什么程度呢?看下效果: 由图可以看出,我们的呆毛html结构确实是非…

JS操作时间 - UNIX时间戳的简单介

JS操作时间 - UNIX时间戳的简单介

时间戳,操作,必看,简单,时间,准备知识GMT(Greenwich Mean Time) - 格林尼治时间。UTC(Universal Time Code) - 国际协调时间。PST(Pacific Standard Time,太平洋标准时间)。UTC出现的比GMT时间晚,可以认为UTC时间更加精确,不过它们之间只相差几…

ps怎么在岩石上刻文字? ps岩石刻字

ps怎么在岩石上刻文字? ps岩石刻字

教程,文字,岩石,上刻,电脑软件,ps中想要在岩石中雕刻文字,该怎么雕刻呢?下面我们就来看看详细的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、首先启动Photoshop cs5,执行文件-打开命令,打开一副…

[js高手之路]单例模式实现模态框的

[js高手之路]单例模式实现模态框的

模态框,单例模式,之路,示例,高手,什么是单例呢?单,就是一个的意思。例:就是实例化出来的对象,那合在一起就是保证一个构造函数只能new出一个实例,为什么要学习单例模式呢?或者说单例模式有哪些常见的应用场景.它的使用还是很广泛,比如:弹出一个模态…

ajax异步请求刷新

ajax异步请求刷新

刷新,异步请求,电脑软件,ajax,在网站刷新的方法中,ajax刷新是一种用户体验良好的刷新方式,在结合ssh等流行的框架!最为常用了!下面就是常用一个ajax刷新表单的一个demo.$(document).ready(function () { testchaxun(); setInterval("testch…

JS设置CSS样式的方式汇总

JS设置CSS样式的方式汇总

设置,样式,方式,电脑软件,JS,1. 直接设置style的属性 某些情况用这个设置 !important值无效如果属性有'-‘号,就写成驼峰的形式(如textAlign) 如果想保留 - 号,就中括号的形式 element.style[‘text-align'] = ‘100px';element.style.he…

css和js实现弹出登录居中界面完整

css和js实现弹出登录居中界面完整

界面,登录,弹出,完整,代码,我实现的这个和许多网站上的登录弹出窗口差不多,大家举一反三,先看我写完后的结果。点击创建相册后会在这个屏幕的中间显示创建相册的表单,整个背景颜色变暗,点击右上角的X会关闭这个表单。html代码创建按钮<li id="…