javascript - 如何使用 Jquery 检测滚动速度?

标签 javascript jquery google-chrome-extension

我想尝试复制 io7 的 safari 功能,当您在 javascript/jquery 中缓慢滚动时,url 和导航栏会最小化。首先是检测滚动速度,我看过this已经有问题了,但我在内容脚本中这样做,所以我不一定有他们使用的顶部和底部元素。还有其他检测滚动速度的方法吗?

最佳答案

您可以通过 jQuery 附加到滚动事件,并结合使用时间戳和 scrollOffset,通过将偏移量/时间与之前的最后一个滚动事件进行比较来确定滚动速度。像这样:

var lastOffset = $( mySelector ).scrollTop();
var lastDate = new Date().getTime();

$( mySelector ).scroll(function(e) {
    var delayInMs = e.timeStamp - lastDate;
    var offset = e.target.scrollTop - lastOffset;
    var speedInpxPerMs = offset / delayInMs;
    console.log(speedInpxPerMs);

    lastDate = e.timeStamp;
    lastOffset = e.target.scrollTop;
});

无论如何,因为您无法控制常规浏览器中的导航栏,所以我看不到这里的意义:/

可能您正在搜索这样的内容:Parallax scroll with sticky header

GL 克里斯

关于javascript - 如何使用 Jquery 检测滚动速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660348/

相关文章:

jquery - ASP.NET JSON WCF 服务截断响应

javascript - 如何使用一个按钮在折叠和屏蔽 12 张不同的图片之间切换

javascript - 在 ajax 成功中无法检测到来自 mysql 的 json_encode 结果

javascript - 如何设置 Controller ,以便根据选择的按钮执行特定命令?

javascript - 网页如何防止粘贴事件?

javascript - 为什么游戏计时为 0、5、4、3、2、1,而不是 5、4、3、2、1 秒?

jquery - 在 chrome 扩展中使用什么代替 window.location.href ?

javascript - 如何知道 html 视频开始播放的原因?

javascript - 如何使用 JavaScript 下载视频

php - 使用 Zend Framework 忽略文件上传的空实例?文件因此无法上传