使用Javascript进行滚动处理

使用Javascript进行滚动处理,javascript,jquery,html,css,scroll,Javascript,Jquery,Html,Css,Scroll,我是网络编程新手,在我的网站上工作时,我偶然发现了一些奇怪的东西。我使用Wordpress,但在这里我必须深入Javascript代码才能完成 我希望实现以下目标: 我希望人们在到达时能看到我网站的标题,但在阅读我网站上的内容时不要被标题所困扰。 我发现,如果a)人们在网站顶部,b)点击菜单链接,我希望网站向下滚动。当人们已经在网站上并点击菜单项来更改页面时,我想保持他们之前的滚动位置 我尝试了两种版本: 除了在每次重新加载站点时执行该函数外,这个函数的工作方式很有魅力 var scroll_p

我是网络编程新手,在我的网站上工作时,我偶然发现了一些奇怪的东西。我使用Wordpress,但在这里我必须深入Javascript代码才能完成

我希望实现以下目标: 我希望人们在到达时能看到我网站的标题,但在阅读我网站上的内容时不要被标题所困扰。 我发现,如果a)人们在网站顶部,b)点击菜单链接,我希望网站向下滚动。当人们已经在网站上并点击菜单项来更改页面时,我想保持他们之前的滚动位置

我尝试了两种版本: 除了在每次重新加载站点时执行该函数外,这个函数的工作方式很有魅力

var scroll_position = localStorage.getItem('scroll_position');
var header_height = document.getElementById('masthead').offsetHeight;
var menubar_height = document.getElementById('top-bar').offsetHeight;
var page_height = header_height - menubar_height;

jQuery(function () {

    if (window.pageYOffset == scroll_position){
        jQuery(window).scrollTop(page_height);
    }
    else{
       jQuery(window).scrollTop(scroll_position);
    }
});
但由于我只想在单击其中一个菜单项时执行该功能,因此我尝试:

jQuery("#top-menu ul li a").click(function(){

    if (window.pageYOffset == scroll_position){
        jQuery(window).scrollTop(page_height);
    }
    else{
        jQuery(window).scrollTop(scroll_position);
    }

});
突然间,
scroll\u position
变量没有像以前那样改变值

我花了一整天的时间试图弄明白这一点,如果有人能告诉我我做错了什么,我将不胜感激!
提前谢谢。

根据您给我们的代码,试试这个

jQuery(function () {
    var header_height = document.getElementById('masthead').offsetHeight;
    var menubar_height = document.getElementById('top-bar').offsetHeight;
    var page_height = header_height - menubar_height;

    jQuery("#top-menu ul li a").click(function(e){
        e.preventDefault();

        var scroll_position = localStorage.getItem('scroll_position');

        if (window.pageYOffset == scroll_position){
            jQuery(window).scrollTop(page_height);
        }
        else{
            jQuery(window).scrollTop(scroll_position);
        }
    });
});
我假设页眉高度、菜单栏高度和页面高度在页面加载后无法更改,这就是为什么我们在页面加载时初始化它们,而不是在单击时


希望它能帮助你

谢谢你的快速回答!不幸的是,现在单击菜单链接无法再打开链接页面。它所做的只是在同一页上向下滚动,将菜单置于顶部。此外,if-then条件现在总是返回true,因此我永远无法保持滚动位置。。。