滚动条事件触发解决办法 现在左侧是较多的数据,右侧是一个滚动条div现在滚动右侧的滚动条会触发onscroll里的事件;效果是下拉到一页时,对页码+1,传入搜索方法,得到数据加载屏内,拉一页就触发了如果我想做成拉动滚动条停下时才触发应该怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 window.onscroll = function() { document.onmouseup = function() { alert('stop'); document.onmouseup = null; } } 好像拉动滚动条后,点击空白处才触发的onmouseup啊?如果是拉动鼠标停止时触发呢? LZ的需求能否改变点呢~我记得mouse事件对滚动条无效似乎 你的onscroll事件的方法里给个变量(全局var i = -1)--- i = 0然后同时有个setTimeout给变量计算。100ms执行一次如果是-1则不管他如果是0则给变量执行+1,如果i=一个你觉得可以的数字的时候就执行你要的效果,同时i = -1仅供参考~~~ window.onscroll = function(){ window.status = "ScrollTop:" + document.body.scrollTop + " ScrollHieight:"+ document.body.scrollHeight + " offsetHeight:" + document.body.offsetHeight;}拖动滚动条时看下状态栏,根据滚动条位置判断是否加载页面。加载前禁止滚动事件,加载后再启用,防止重复加载。 用一个标示变量,在滚动后改变标示变量flag = true如果变量是true就触发,可以用setTimeout更新下一页,然后再把flag = false;下次滚动一样是true至于滚动完了才触发事件,需要判断滚动条在没有改变即可 这个需求可以用scrollTop属性实现,但你要知道你每行的高度,和整个页面的行数,如果想处理的很好的话,你还要加上onkeydown事件去捕获,上下,翻页等按钮,ie下,默认点一下,滚动条滚动的高度大约是整个滚动条的1/8,好像是这个数,但有时为了滚动一个整行,就要去用js控制scrollTop,所以你不要管他触发几次了,你就计算和上次滚动的差值就可以了,不过,在你的行高很小时,还是有bug,因为可能两个的高度也比系统默认的滚动一次的小时,你可以获取点击的是滚动条具体的位置去处理,是该翻页还是移动一行,属性名称dhtml里有,你去查就可以,主要是分换页和换行2种情况,整理下思路,这个是很复杂的,但你按这个思路写,应该能实现!! msn: [email protected]急啊,给解决下吧啊!!!! 现成的代码没有,可以告诉你思路,你的tr的每行的高度都是固定不变的吧,你点击一下滚动条的箭头,滚动的距离是固定的吧,强行设置滚动的距离=tr的高度,这个就是滚动一行,就是控制scrollTop,你试试就知道了,作个alert就能记录默认滚动距离了,实在不行你把代码发我邮箱里,我只能处理html的demo, 晚上在吗?我这是linux,远程不了! 请各位高手帮忙修改一下代码 答案正确马上结贴给分 编辑 Js 源码为了防止他人学习一些高级代码很多一行显示,大家有什么方法解析出这种代码呢? 求个简单正则,帮帮忙,急用 JS问题....这个东西没有反应.不知道那里出问题了..有人会吗??? 如何让页面返回,依然保留之前ajax加载的数据? 大甩分!js内有类似vbs中 MOD 的操作符吗? 如何用js取得客户端所连接打印机IP? showModalDialog提交的问题,如何让其不出现新页面!!! 很怪的javascript问题 js 获取iframe的dom 求两个正则表达式(用户名和密码)
window.onscroll = function() {
document.onmouseup = function() {
alert('stop');
document.onmouseup = null;
}
}
如果是拉动鼠标停止时触发呢?
如果是0则给变量执行+1,如果i=一个你觉得可以的数字的时候就执行你要的效果,同时i = -1仅供参考~~~
window.onscroll = function(){
window.status = "ScrollTop:" + document.body.scrollTop +
" ScrollHieight:"+ document.body.scrollHeight +
" offsetHeight:" + document.body.offsetHeight;
}拖动滚动条时看下状态栏,根据滚动条位置判断是否加载页面。
加载前禁止滚动事件,加载后再启用,防止重复加载。
如果变量是true就触发,可以用setTimeout
更新下一页,然后再把flag = false;
下次滚动一样是true
至于滚动完了才触发事件,需要判断滚动条在没有改变即可
ie下,默认点一下,滚动条滚动的高度大约是整个滚动条的1/8,好像是这个数,但有时为了滚动一个整行,就要去用js控制scrollTop,所以你不要管他触发几次了,你就计算和上次滚动的差值就可以了,不过,在你的行高很小时,还是有bug,因为可能两个的高度也比系统默认的滚动一次的小时,你可以获取点击的是滚动条具体的位置去处理,是该翻页还是移动一行,属性名称dhtml里有,你去查就可以,主要是分换页和换行2种情况,整理下思路,这个是很复杂的,但你按这个思路写,应该能实现!!
你的tr的每行的高度都是固定不变的吧,
你点击一下滚动条的箭头,滚动的距离是固定的吧,
强行设置滚动的距离=tr的高度,这个就是滚动一行,
就是控制scrollTop,
你试试就知道了,
作个alert就能记录默认滚动距离了,实在不行你把代码发我邮箱里,我只能处理html的demo,