Javascript Div 滚动 - 一些问题

标签 javascript jquery html css scroll

我从另一篇文章中复制了这个,不是盲目的,我可以看到它的作用,但我想不出解决问题的方法。我不太精通 JavaScript,但我可以阅读这段代码。

// The function actually applying the offset
function offsetAnchor() {
    if (location.hash.length !== 0) {
        window.scrollTo(window.scrollX, window.scrollY - 100);
    }
}

// This will capture hash changes while on the page
$(window).on("hashchange", function() {
    offsetAnchor();
});

// This is here so that when you enter the page with a hash,
// it can provide the offset in that case too. Having a timeout
// seems necessary to allow the browser to jump to the anchor first.
window.setTimeout(function() {
    offsetAnchor();
}, 3);

;(function($) {

    $('.swipebox').swipebox();

})(jQuery);

问题是,当我滚动到带有用于 anchor 的 ID 的 DIV 时,我向下滚动得稍微太远,因为我有一个粘性标题。我尝试使用这个,所以当更改 DIV 时,它会考虑粘性标题,它并不完全工作完美,但我遇到的主要问题是,我将有超过 12 个导航 DIV id,并且每次单击其中任何一个时它不再转到 DIV,而是仅向上滚动 -100 像素。

我本质上需要一个解决方案,它将滚动到我需要它的上方,而不影响我的菜单功能的其余部分,它不必通过 JS 来实现,但这是我可以看到解决方案的唯一可行的方法(我已经尝试过只考虑一个 CSS,但边距/填充在这种滚动情况下无济于事)

要提供最后一个细节,当单击导航 div 时,它将滚动到该 div,并且菜单(粘性标题)将覆盖一些图像以及滚动的元素的内容。主要问题:)

如果您想要更好的描述,我可以留下一个链接,并且我目前正在学习 JS,但由于这是针对客户的,我希望能够及时修复它,并且将不胜感激任何人都可以提供的任何和所有帮助。

谢谢。

最佳答案

this question有一个跳转到某个元素的答案。

如果你想要平滑滚动:look here.

关于Javascript Div 滚动 - 一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33118177/

相关文章:

javascript - 尝试返回 true 或 false 以确定数组是否已定义 javascript

javascript - 如何使用 JQuery 计算 JavaScript 中的单词数

html - (CSS) Flexbox 和移动媒体查询

javascript - extJS 4.分页问题

javascript - 检测页面底部的死滚动(鼠标滚轮、滚动事件)

html - 水平控制列表项的位置

javascript - 在点击数据库中的网站时在 iframe 中加载点击 ID 的网站

php - 动态表单创建向下添加行

javascript - 表单值中的 JS 变量

javascript - 为 JQuery 创建条件语句