【www.bbyears.com--WordPress】
具体效果可以直接打开我博客首页查看(我的文章页是没有侧边栏的),简单说就是一定高度范围内侧边栏无定位属性(position:static),超过这个高度范围则跟随着屏幕一起滚动(position:fixed)。经常逛淘宝的同学大概会有印象,当页面拖动使 宝贝详情 / 评价详情 / 成交记录 这栏超过屏幕显示范围时会固定到上方随着屏幕一起滚动,这样可以方便地切换内容,而不影响当前内容的浏览。
实现的方法很简单,在主题的 footer.php 中添加以下代码:
$(document).ready(function(){
$(function(){
var swidth=$("#accordion1").width(); // 获取#accordion1的宽度(若侧栏为固定宽度的可以删去)
$(window).scroll(function(){
if($(this).scrollTop()>$("#header").height()){ // 滚屏距离大于#header高度时处理
$("#accordion1").css({top:"30px",position:"fixed",width:swidth+"px"}); // 添加fixed和宽度
} else {
$("#accordion1").css({position:"static"}); // 复位
}
});
});
});
</script>
#accordion1 是需要随屏滚动内容的ID,请按需修改。
代码如下 $(this).scrollTop()>$("#header").height()判断滚动屏幕的距离是否大于 #header 的高度,你也可以修改成固定值,例如
代码如下$(this).scrollTop()>200
var swidth=$("#accordion1").width();用于获取#accordion1的宽度,固定宽度的可以删除这一行(包括后面的 ,width:swidth+"px" )。