Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript获取滚动条的位置_Javascript_Html_Css - Fatal编程技术网

使用javascript获取滚动条的位置

使用javascript获取滚动条的位置,javascript,html,css,Javascript,Html,Css,所以我试图在滚动网页时显示一个类似工具提示的框,我希望它沿着页面右侧的滚动条 我环顾四周,发现了一些尝试实现这一目标的方法,如下所示: function returnPercentHeight(){ var a = document.getElementById('rightPanel').scrollTop; var b = document.getElementById('rightPanel').scrollHeight - document.getElementById(

所以我试图在滚动网页时显示一个类似工具提示的框,我希望它沿着页面右侧的滚动条

我环顾四周,发现了一些尝试实现这一目标的方法,如下所示:

function returnPercentHeight(){
    var a = document.getElementById('rightPanel').scrollTop;
    var b = document.getElementById('rightPanel').scrollHeight - document.getElementById('rightPanel').clientHeight;
    return ((a/b) * 100);
}
然后,我在末尾附加一个%并将工具提示的上边距设置为该返回值。这很好(有点)我必须调整
返回((a/b)*x)
部分(x),使其根据浏览器窗口的大小跟随滚动条。有没有更好的方法来完成我想做的事情?(注意:我只能使用javascript,请不要使用JQuery。)

编辑:


只有ID为“RightPanel”的div在滚动,我没有使用浏览器上的滚动条,而是使用内部div上的滚动条。

虽然IE不支持,但这是我见过的最酷的一个:

// get
var x = window.scrollX,
    y = window.scrollY;

// set
window.scrollTo(1, 2);

有三种方法可以做到这一点:

第一:

是使用固定位置,如下所示

Position: Fixed;
第二:

使用jQuery

$(function(){
   $(window).on('scroll', function() {
     var scrollPOS = $(document).scrollTop();
     $('.scroll').css({
        top: scrollPOS
     });
   }).scroll();
});
第三:

与前一个相同,仅为动画

$(window).on('scroll', function() {
  $("#div").stop().animate({
     "marginTop": ($(window).scrollTop()) + "px", 
     "marginLeft":($(window).scrollLeft()) + "px"}, "slow" );
});

我应该提到的是,整个页面没有滚动,只有一半页面上的一个div。