Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 如何使“window.scroll”更精确?_Javascript - Fatal编程技术网

Javascript 如何使“window.scroll”更精确?

Javascript 如何使“window.scroll”更精确?,javascript,Javascript,当我点击box1时,滚动效果需要向下滚动到box2(蓝色框的上边缘)。这在网络上效果很好,但我无法在移动设备上精确复制这种效果 document.getElementById('box1').addEventListener('click',function(){ window.scrollTo({ top:507, 行为:“平稳” }); }); .box1{ 宽度:100px; 高度:100px; 背景色:红色; } .box2{ 宽度:100px; 高度:100px; 背景颜色:蓝色;

当我点击
box1
时,滚动效果需要向下滚动到
box2
(蓝色框的上边缘)。这在网络上效果很好,但我无法在移动设备上精确复制这种效果

document.getElementById('box1').addEventListener('click',function(){
window.scrollTo({
top:507,
行为:“平稳”
});
});
.box1{
宽度:100px;
高度:100px;
背景色:红色;
}
.box2{
宽度:100px;
高度:100px;
背景颜色:蓝色;
}
.box3{
宽度:100px;
高度:100px;
背景颜色:绿色;
}
.差距{
宽度:100%;
高度:400px;
背景颜色:黄色;
}

您正在滚动到一个特定的坐标(
top:507
),这在手机上会有所不同

使用JavaScript获取要滚动到的特定元素的坐标的
top

var box2 = document.getElementById("box2");
document.getElementById('box1').addEventListener('click', function() {
  window.scrollTo({
    top: box2.getBoundingClientRect().top,
    behavior: "smooth"
  });
});

您正在滚动到一个特定的坐标(
top:507
),这在移动设备上会有所不同

使用JavaScript获取要滚动到的特定元素的坐标的
top

var box2 = document.getElementById("box2");
document.getElementById('box1').addEventListener('click', function() {
  window.scrollTo({
    top: box2.getBoundingClientRect().top,
    behavior: "smooth"
  });
});

你说:
在手机上会有所不同。我如何使其移动友好?有什么建议吗?有一件事是,如果你需要滚动到一个元素,滚动到确切的元素,而不是你对它所在位置的猜测/估计。即使您只是为web开发,情况也是如此。如果你想知道如何让网络应用在移动设备上正常运行,那是一个不同且更广泛的问题。你说:
在移动设备上会有什么不同。我如何使其移动友好?有什么建议吗?有一件事是,如果你需要滚动到一个元素,滚动到确切的元素,而不是你对它所在位置的猜测/估计。即使您只是为web开发,情况也是如此。如果你想知道如何让网络应用在手机上正常运行,那是一个不同的更广泛的问题