Javascript中的ScrollTop和ScrollLeft

时间:2018-05-22 01:24:50

标签: javascript

我正在尝试将jQuery转换为普通的JS。

我的问题是我似乎找不到这两行的等价物:

$(window).scrollTop($(window).scrollTop() + (curYPos - m.pageY)); 
$(window).scrollLeft($(window).scrollLeft() + (curXPos - m.pageX));

这是我的完整代码:

$(function(){
  var curDown = false,
      curYPos = 0,
      curXPos = 0;
  $(window).mousemove(function(m){
    if(curDown === true){
     $(window).scrollTop($(window).scrollTop() + (curYPos - m.pageY)); 
     $(window).scrollLeft($(window).scrollLeft() + (curXPos - m.pageX));
    }
  });

  $(window).mousedown(function(m){
    curDown = true;
    curYPos = m.pageY;
    curXPos = m.pageX;
  });

  $(window).mouseup(function(){
    curDown = false;
  });
})

CodePen

1 个答案:

答案 0 :(得分:1)

使用以下使用纯JavaScript的跨浏览器解决方案:

var supportPageOffset = window.pageXOffset !== undefined;
var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat");

var scrollLeft = supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;
var scrollTop = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;