滚动条事件触发解决办法

SK_Aqi 2010-10-24 02:00:09
现在左侧是较多的数据,右侧是一个滚动条div
现在滚动右侧的滚动条会触发onscroll里的事件;
效果是下拉到一页时,对页码+1,传入搜索方法,得到数据加载屏内,拉一页就触发了
如果我想做成拉动滚动条停下时才触发应该怎么做?
...全文
2749 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangshaolongjj 2010-10-27
  • 打赏
  • 举报
回复
补白?什么意思?
billlllyove 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 zhangshaolongjj 的回复:]

现成的代码没有,可以告诉你思路,
你的tr的每行的高度都是固定不变的吧,
你点击一下滚动条的箭头,滚动的距离是固定的吧,
强行设置滚动的距离=tr的高度,这个就是滚动一行,
就是控制scrollTop,
你试试就知道了,
作个alert就能记录默认滚动距离了,实在不行你把代码发我邮箱里,我只能处理html的demo,
[/Quote]

如果出现补白这些怎么办?不是那么好计算的吧?
APM60- 2010-10-26
  • 打赏
  • 举报
回复

window.onscroll = function(){
window.status = "ScrollTop:" + document.body.scrollTop +
" ScrollHieight:"+ document.body.scrollHeight +
" offsetHeight:" + document.body.offsetHeight;
}

拖动滚动条时看下状态栏,根据滚动条位置判断是否加载页面。
加载前禁止滚动事件,加载后再启用,防止重复加载。
SK_Aqi 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 zhangshaolongjj 的回复:]
晚上在吗?我这是linux,远程不了!
[/Quote]
大哥!谢谢!几点啊?
zhangshaolongjj 2010-10-26
  • 打赏
  • 举报
回复
晚上在吗?我这是linux,远程不了!
SK_Aqi 2010-10-26
  • 打赏
  • 举报
回复
感觉局部来看,看不出来吧,远程帮我看看吧?
zhangshaolongjj 2010-10-26
  • 打赏
  • 举报
回复
369669902@qq.com
zhangshaolongjj 2010-10-26
  • 打赏
  • 举报
回复
现成的代码没有,可以告诉你思路,
你的tr的每行的高度都是固定不变的吧,
你点击一下滚动条的箭头,滚动的距离是固定的吧,
强行设置滚动的距离=tr的高度,这个就是滚动一行,
就是控制scrollTop,
你试试就知道了,
作个alert就能记录默认滚动距离了,实在不行你把代码发我邮箱里,我只能处理html的demo,
SK_Aqi 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zhangshaolongjj 的回复:]
兼容什么浏览器的?
[/Quote]
ff,ie就行了吧
zhangshaolongjj 2010-10-26
  • 打赏
  • 举报
回复
兼容什么浏览器的?
SK_Aqi 2010-10-26
  • 打赏
  • 举报
回复
msn: 401533349@163.com急啊,给解决下吧啊!!!!
SK_Aqi 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zhangshaolongjj 的回复:]
这个需求可以用scrollTop属性实现,但你要知道你每行的高度,和整个页面的行数,如果想处理的很好的话,你还要加上onkeydown事件去捕获,上下,翻页等按钮,
ie下,默认点一下,滚动条滚动的高度大约是整个滚动条的1/8,好像是这个数,但有时为了滚动一个整行,就要去用js控制scrollTop,所以你不要管他触发几次了,你就计算和上次滚动的差值就可以了,不过,在你的行高很小时,还是有bug……
[/Quote]
给看看代码吧,好吗,急啊!!!
zhangshaolongjj 2010-10-26
  • 打赏
  • 举报
回复
这个需求可以用scrollTop属性实现,但你要知道你每行的高度,和整个页面的行数,如果想处理的很好的话,你还要加上onkeydown事件去捕获,上下,翻页等按钮,
ie下,默认点一下,滚动条滚动的高度大约是整个滚动条的1/8,好像是这个数,但有时为了滚动一个整行,就要去用js控制scrollTop,所以你不要管他触发几次了,你就计算和上次滚动的差值就可以了,不过,在你的行高很小时,还是有bug,因为可能两个的高度也比系统默认的滚动一次的小时,你可以获取点击的是滚动条具体的位置去处理,是该翻页还是移动一行,属性名称dhtml里有,你去查就可以,主要是分换页和换行2种情况,整理下思路,这个是很复杂的,但你按这个思路写,应该能实现!!
SK_Aqi 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ibm_hoojo 的回复:]
引用楼主 sk_aqi 的回复:
现在左侧是较多的数据,右侧是一个滚动条div
现在滚动右侧的滚动条会触发onscroll里的事件;
效果是下拉到一页时,对页码+1,传入搜索方法,得到数据加载屏内,拉一页就触发了
如果我想做成拉动滚动条停下时才触发应该怎么做?


CSS code
用一个标示变量,在滚动后改变标示变量flag = true
如果变量是true就触发,可以用set……
[/Quote]
还不是每次都要滚动一次触发一次?没看懂,请赐教啊!!!
hoojo 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 sk_aqi 的回复:]
现在左侧是较多的数据,右侧是一个滚动条div
现在滚动右侧的滚动条会触发onscroll里的事件;
效果是下拉到一页时,对页码+1,传入搜索方法,得到数据加载屏内,拉一页就触发了
如果我想做成拉动滚动条停下时才触发应该怎么做?
[/Quote]
用一个标示变量,在滚动后改变标示变量flag = true
如果变量是true就触发,可以用setTimeout
更新下一页,然后再把flag = false;
下次滚动一样是true
至于滚动完了才触发事件,需要判断滚动条在没有改变即可
mark620 2010-10-25
  • 打赏
  • 举报
回复
SK_Aqi 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cj205 的回复:]
你的onscroll事件的方法里给个变量(全局var i = -1)--- i = 0

然后同时有个setTimeout给变量计算。100ms执行一次如果是-1则不管他
如果是0则给变量执行+1,如果i=一个你觉得可以的数字的时候就执行你要的效果,同时i = -1

仅供参考~~~
[/Quote]

主要是 "觉得可以的数字的时候" 是不确定性
这个数字应该是符合页码的条件的数字;
Mr-Jee 2010-10-24
  • 打赏
  • 举报
回复
你的onscroll事件的方法里给个变量(全局var i = -1)--- i = 0

然后同时有个setTimeout给变量计算。100ms执行一次如果是-1则不管他
如果是0则给变量执行+1,如果i=一个你觉得可以的数字的时候就执行你要的效果,同时i = -1

仅供参考~~~
SK_Aqi 2010-10-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cj205 的回复:]
LZ的需求能否改变点呢~我记得mouse事件对滚动条无效似乎
[/Quote]
怎么改变,请赐教!
Mr-Jee 2010-10-24
  • 打赏
  • 举报
回复
LZ的需求能否改变点呢~我记得mouse事件对滚动条无效似乎
加载更多回复(3)

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧