0

我有一个 div,其中有 7 个面板,但在使用滚动时一次只显示 1 个。我的问题是如何从 div 内的某个距离开始?我已经查找了一些解决方案,但似乎无法让它们发挥作用。这是我到目前为止所拥有的:

JS

function olo() {
    el = document.getElementById("overlimo");
    el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";

    var targetXPos = 800;
    $(document).ready(function () {
        $('html, body').animate({
            scrollLeft: targetXPos
        }, 900);
    });
}

HTML 和 CSS 很长,所以除非您需要查看它们,否则我暂时将其省略。初始函数 olo() 转到叠加层。由于每个链接都有自己的起点,我需要知道如何从某个位置开始。

假设我的初始 div 是 900px 宽,该 div 中的整行是 6300px。单击时,我需要为其余 6 个面板设置间隔:例如 900px in、1800px in、2700px in...等。

4

2 回答 2

2

你有没有尝试过:

var targetXPos = $(el).position().left;

现在,如果您正在使用相对或绝对定位的负载,您可能需要在两者之间进行实验,.position()并且.offset() 代码可能应该在doc.ready

于 2013-09-05T16:06:10.930 回答
1

仅在 body 上使用 scrollLeft 而不是通过动画呢?

$(document).ready(function () {
    $('body').scrollLeft(targetXPos);
});

来自 API 文档

于 2013-09-05T16:09:42.510 回答