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