用jquery设定始终显示(随页面滚动)的元素
2019-03-27 08:52:03来源: Axiu’s blog 阅读 ()
标题比较让人费解,大概效果就是现在越来越多的看到网站里添加的随页面滚动的模块。比如我这里的头部就是,当然有时候,效果会更好一些,比如一般时候固定在某处,页面滚动使这个元素滚出显示边界之后,为了方便读者(或者展示广告),就把这个模块变成随页面滚动的。测试了一下效果还不错(当然IE6去死)。
很久没写过代码分享文章了。这里先说一下方法:获取元素(这里定位元素A)距离顶部的高度,接着设定scroll滚动的事件,比如超过那个高度,把A的位置设定为fixed,小于该高度,修改回relative。这里借zww大叔个图,如下(当然大叔不是这么弄的,不过效果类似):
下面是代码。
var scroller_anchor = jQuery(".scroller").offset().top;
jQuery(window).scroll(function() {
if (jQuery(this).scrollTop() >= scroller_anchor && jQuery('.scroller').css('position') != 'fixed') {
jQuery('.scroller').css({
'position': 'fixed',
'margin-top': '0'
});
} else if (jQuery(this).scrollTop() < scroller_anchor && jQuery('.scroller').css('position') != 'relative') {
jQuery(".scroller").css({
'margin-top': '10px',
'position': 'relative'
});
}
});
但是,有时候这样的方式会有问题,比如元素A上面有动态增长(缩短)的元素(比如突然js写入了一个东东),这样第一次获取的高度就不再合适。这样就需要设定一个锚点(这里设定为class id为scroller_anchor的div元素)(经zww大叔提醒将class改为ID)。代码如下:
jQuery(window).scroll(function() {
if(jQuery("#content").find("#scroller_anchor").length > 0){
var scroller_anchor = jQuery("#scroller_anchor").offset().top;
if (jQuery(this).scrollTop() >= scroller_anchor && jQuery('.scroller').css('position') != 'fixed') {
jQuery('.scroller').css({
'position': 'fixed',
'margin-top': '0'
});
jQuery("#scroller_anchor").css('height', '36px');
} else if (jQuery(this).scrollTop() < scroller_anchor && jQuery('.scroller').css('position') != 'relative') {
jQuery("#scroller_anchor").css('height', '0px');
jQuery(".scroller").css({
'margin-top': '10px',
'position': 'relative'
});
}
}
});
上面用到的完整的html代码如下:
<div id="main-content">
<div id="scroller_anchor" style="height: 0px; "></div>
<div class="scroller">
......
</div>
</div>
至于具体的css,请自己根据需要设定吧。
文章来源:Axiu’s blog
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:EDM邮件营销分析与策略优化
- jQuery.imgAutoSize:图片自适应大小(以宽度)+图片(文字 2019-04-10
- WordPress和Joomla网站:遭受欺骗jQuery攻击 2019-04-08
- 那些年网络域名惹的“祸” 2019-04-08
- 网站如何做到完全不需要使用jQuery 2019-04-08
- jQuery最核心基础设施:数据缓存模块进化史 2019-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash