网页侧栏固定的用途非常广泛,可以是固定导航,可以是固定部分文章,可以是固定对话窗口,更为常见的是固定广告层。现在很多站长都把侧栏部分内容给固定了,然而当被固定内容层太高时,网页滚到后面时可能会把底部的内容遮住了,这十分影响用户体验的。如下图所示:
侧栏把底部遮住了
为了获得更好的用户体验,需要解决这个问题,使侧栏始终位于底部之上,但又始终浮动可见。效果图如下:
侧栏位于底部之上
侧栏始终浮动可见
使用JS的实现方法
1、在<head></head>里添加如下代码
<!-- float div start-->
<script type="text/javascript" src="/script/jquery-1.4.2.min.js"></script>
<style type ="text/css" >
.fixed {
position:fixed;
top:0px;
width:300px;
}
.fixed2 {
position:fixed;
top:-40px;
width:300px;
}
</style>
<script type="text/javascript">
jQuery(document).ready(function() {
var a = $("#floatbox").offset();
$(window).scroll(function() {
var b = $(window).scrollTop();
if (b > a.top) {
if((b + 600 + 200) < document.body.parentNode.scrollHeight)
$("#floatdiv").addClass("fixed");
else
$("#floatdiv").addClass("fixed2");
} else {
$("#floatdiv").removeClass("fixed");
$("#floatdiv").removeClass("fixed2");
}
});
});
</script>
<!-- float div end-->
上述代码里的数字需要根据自己的网页进行调整,解释如下:
<script type="text/javascript" src="/script/jquery-1.4.2.min.js"></script>
引用jquery.js,注意文件路径
top:0px; 这个是漂浮层距离网页顶部的位置
width:300px; 这个是漂浮层的宽度
top:-40px; 这个是漂浮层距离网页顶部的位置
if((b + 600 + 200) < document.body.parentNode.scrollHeight)
600是漂浮层的高度,200是网页底部的高度,如下图所示:
漂浮层和底部高度
2、固定层的代码如下:
<div id="floatbox" >
<div id="floatdiv">
<ul>
<li><a href="#" target="_blank">这里是需要固定的内容</a></li>
<li><a href="#" target="_blank">这里是需要固定的内容</a></li>
<li><a href="#" target="_blank">这里是需要固定的内容</a></li>
<li><a href="#" target="_blank">这里是需要固定的内容</a></li>
</ul>
</div>
</div>
通过上述方法的设置,固定侧栏但又不遮住底部的功能就实现了。
您可能对如下文章也感兴趣
☉使用延迟加载图片插件 提高网页打开速度 (2013-10-21 9:48:51)
☉可以获得IP经度纬度的程序API接口 (2013-6-6 14:17:59)
☉调用新浪IP查询接口获取客户端用户ISP提供商 (2013-6-6 13:21:35)
☉fw.qq.com/ipaddress已失效 javascript获得客户端IP的新方法 (2012-1-1 23:34:16)
☉JQuery实现的层滑动效果,玄酷实用 (2009-12-15 3:33:37)
☉location.href在firefox中不起作用 (2009-11-15 23:32:47)
☉解决JSChart画图不支持中文的问题 (2009-11-5 19:54:6)
☉对JSChart未定义的解决方法 (2009-11-4 18:36:53)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。