Javascript滚动处理
Scroll Handling with Javascript
我是web编程的新手,在我的网站上工作时,我偶然发现了一些奇怪的东西。我使用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_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);
}
});
});
我假设header_height, menubar_height和page_height一旦页面加载就不能改变,这就是为什么我们在页面加载时初始化它们,而不是点击。
希望对你有所帮助
相关文章:
- Java Selenium 2.0-在WebElement.click()之前使用内置滚动时处理z索引(navi)
- JavaScript 事件处理具有延迟的滚动事件
- 如何处理 Backbone .js应用程序中哈希更改的滚动位置
- JavaScript:当用户滚动时对滚动进行动画处理
- jQuery:如果其他滚动函数,则进行动画处理
- 处理 js - 关卡滚动
- 处理窗口外焦点的 Javascript 滚动条
- jQuery通过向上/向下按钮滚动到下一个元素 - 如何为手动滚动添加处理,否则会混淆这一点
- Famo.us:如何以编程方式对滚动视图的位置进行动画处理
- JQuery- 如何使用 ALS 滚动脚本处理图像
- 为什么在用户滚动后,设置超时不会在触摸端处理程序中触发(iOS Safari)
- 绑定此鼠标滚轮事件处理程序将禁用垂直滚动
- 使用jQuery.off或.unbind删除和添加滚动事件处理程序
- 滚动无法处理动态添加到jQuery移动列表的项目
- 如何在无限滚动中处理javascript的执行
- 将多个事件处理程序绑定到滚动事件是否会影响性能
- 在ZK中处理鼠标滚动
- PhoneGap如何处理滚动
- 非默认行高的可处理滚动问题
- 处理滚动条和jquery .width()方法