使用jquery获取滚动位置

Get scroll position using jquery

本文关键字:位置 滚动 获取 jquery 使用      更新时间:2023-09-26

奇怪的请求,但我需要获得当前浏览器滚动位置作为变量。我应该使用什么js或jquery函数?我需要它来弄清楚要在侧面显示哪些元素。我在网上找到了一些东西,但对我的div没有任何作用,只有整个页面。

跨浏览器变体

$(document).scrollTop();

较旧的IE和Firefox浏览器将滚动条附加到documentElement,或者HTML中的<html>标记。

所有其他浏览器都将滚动条附加到document.body,或者HTML中的<body>标记。

正确的解决方案是根据浏览器检查使用哪一个

var doc = document.documentElement.clientHeight ? document.documentElement : document.body;
var s   = $(doc).scrollTop();

当传入windowdocument时,jQuery确实让这变得更容易了。jQuery的scrollTop也会进行类似的检查并计算出来,所以这两种方法都应该可以跨浏览器工作

var s = $(document).scrollTop();

var s = $(window).scrollTop();

jQuery scrollTop()文档

描述:获取滚动条的当前垂直位置匹配元素集合中的第一个元素或设置垂直元素每个匹配元素的滚动条的位置。


没有什么对我的div有效,只有整页

如果是针对DIV,则必须针对附加了滚动条的元素,才能获得滚动量

$('div').scrollTop();

如果你需要获得元素与文档顶部的距离,你也可以进行

$('div').offset().top

我认为jQuery的最佳方法是使用.scrollTop():

var pos = $('body').scrollTop();

使用scrollTop()获取或设置滚动位置。