当滚动停止百分比时触发
Trigger when scroll stopped by percent
我需要在用户停止滚动时触发并提醒一些消息。但是我需要按百分比触发它。
例如,我想提醒用户一些消息,如果他滚动,但当他停止滚动,如果他滚动超过80%的窗口。
我有这个代码,当srcoll被停止时触发,不知道如何得到这个工作与滚动百分比:
$.fn.scrollStopped = function(callback) {
$(this).scroll(function(){
var self = this, $this = $(self);
if ($this.data('scrollTimeout')) {
clearTimeout($this.data('scrollTimeout'));
}
$this.data('scrollTimeout', setTimeout(callback,250,self));
});
};
jQuery(window).scrollStopped(function(){
alert('stopped');
});
您可以计算文档和窗口的高度,然后将其与滚动条的当前垂直位置进行比较:
$.fn.scrollStopped = function(callback) {
$(this).scroll(function(){
var self = this, $this = $(self);
if ($this.data('scrollTimeout')) {
clearTimeout($this.data('scrollTimeout'));
}
$this.data('scrollTimeout', setTimeout(callback,250,self));
});
};
jQuery(window).scrollStopped(function(){
console.log(jQuery(window).scrollTop());
if($(window).scrollTop() > ($(document).height() - $(window).height())*0.8){
alert('You have scrolled more than 80%');
}
});
你自己试试。你可能想阅读更多关于这两个函数的细节;. scrolltop () and .height().
DEMO: http://jsfiddle.net/A9dB2/
jQuery(window).scrollStopped(function(){
var docH = $(document).height();
var winH = $(window).height();
var scrollTop = $(this).scrollTop()
var totalPixels = docH - winH;
var scrollPercentage = parseFloat(scrollTop/totalPixels * 100).toFixed(2);
alert(scrollPercentage + "%");
});
相关文章:
- 幻灯片滚动javascript不起作用
- 将视口底部滚动到元素底部
- jQuery Lazy加载动画滚动
- 设置滑块分区上的滚动
- 结合jQuery和jetpack无限滚动
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 根据精确的滚动百分比更改文本
- 获取滚动位置的百分比
- 循环进度条在滚动时显示 - 百分比文本问题
- 滚动到顶部,动画为百分比
- 使用图像滚动达到页面中的最大内容,然后应该使用窗口百分比隐藏图像
- 视差滚动效果,在页面上以一定的百分比开始
- jQuery基于滚动百分比切换元素类
- 使用Waypoints库滚动百分比
- 如何在滚动页面的相对百分比后显示此弹出窗口
- 当滚动停止百分比时触发
- Javascript滚动高度百分比数学
- 传递滚动值作为百分比作为参数,计算两点之间的距离
- 获取 dom 容器中的滚动百分比
- 基于滚动百分比的动画翻译