有时候我们需要监听浏览器中上下滚动的位置来改变一些元素的属性隐藏或者显示,比如笔友城堡中下拉达到一定高度后搜索框会固定在顶部。(可以前去看看效果)
如果我们要实现这效果,就需要监听滚动条的Y轴位置的变化,根据Y轴的位置来改变某些元素的属性值。
闲话少说,直接附上代码(下面是改变类header的属性)
/**
根据y的位置动态改变Header位置
*/
function moveHeaderPosition(y) {
var header = document.getElementById("header");
【这里改变的是位置的属性值】
if (y >= header.offsetHeight) {
header.style.position = "fixed";
} else {
header.style.position = "relative";
}
};
/**
监听滚动条位置
*/
window.onscroll = function () {
【兼容chrome、Firefox、ie等大众浏览器】
if (document.documentElement) {
var y1 = document.documentElement.scrollTop || 0;
}
if (document.body) {
var y2 = document.body.scrollTop || 0;
}
var y3 = window.scrollY || 0;
【滚动条到页面顶部的垂直距离】
var y = Math.max(y1, Math.max(y2, y3));
moveHeaderPosition(y);
};
由于不同浏览器会有些不兼容问题,因此再获取滚动条位置时需要特别注意。
历史上的今天
暂无评论...
随机推荐
史铁生:合欢树
10岁那年,我在一次作文比赛中得了第一。母亲那时候还年轻,急着跟我说她自己,说她小时候的作文作得比我还要好,老师甚至不相信那么好的文章会是她写的。“老师找到家来问,是不是家里的大人帮了忙。我那时可能还不到10岁呢。”我听得扫兴,故意笑:“可能?什么叫‘可能还不到’?”她就解释,我装作根本不在意她的话...
[摘]dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
前言最近因为一个紧急的项目,客户要求摘他另外一个客户的样机,为了赶进度,我们通过反编译样机中的应用,获取UI和布局等。但,做出来后,效果总感觉有些不一样,比如显示的字体大小。最后发现,我们调试的样机分辨率虽然跟样机一样,但密度不一样。客户的样机:240dpi我们的设备:160dpi获取...
[摘]《财富》杂志评选:75本商业必读书
《财富》杂志曾调动一切资源,选出了有史以来最应该阅读的75本商业必读书。这些书将激发你的思考,甚至是行动。实际上,有了这份书单,你等于就有了睿智的顾问供你驱使,它耐心地待在那里,等着你的召唤。商业兴衰No.1 《1929年大崩盘》约翰·肯尼斯·加尔布雷思(著)这是本简明扼要但又富有见地的历史...
王小波:一只特立独行的猪
插队的时候,我喂过猪、也放过牛。假如没有人来管,这两种动物也完全知道该怎样生活。它们会自由自在地闲逛,饥则食渴则饮,春天来临时还要谈谈爱情;这样一来,它们的生活层次很低,完全乏善可陈。人来了以后,给它们的生活做出了安排:每一头牛和每一口猪的生活都有了主题。就它们中的大多数而言,这种生活主题是很悲惨的...
mediaserver的启动
前言之前介绍MediaPlayer的使用,上次写过《MediaPlayer JNI层介绍》,发现很多方法都是都是# //BpMediaPlayer.prepareAsync()mPlayer->start()调用,而且BpMediaPlayer也只是代理而已,真正调用的还是另有其人。...
川端康成:父母的心
诸位,把眼睛闭上五分钟,然后平心静气地想想父亲或者母亲试试看。你们的父母是如何深深地爱着你们,怀念子女的父母之心是多么温暖、多么广阔,直到现在不是依然使大家感慨万千、激动不已的么?啊,用不着闭上眼睛,你们大家无论早晚不是深深地感到双亲之恩么?这个故事,肯定也是让你们知道父母之心是多么伟大的故事之...