博客吧修改了侧栏的显示模式,使用随滚动条滚动效果,避孕由于内容较多侧边空的现象,可以说有效地提高了用户体验吧。博客吧实现使用的是IM路人提供的jQuery代码,此前大前端博客也提供了两段相关的jQuery代码,分别是《jQuery 随滚动条滚动效果 (固定版)》和《jQuery 随滚动条滚动效果 (适用于内容页长文章)》,为了方便以后使用,博客吧将其转摘过来。
适用于内容页长文章的jQuery代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //侧栏随动 var rollStart = $('.feed-mail'), //滚动到此区块的时候开始随动 rollOut = $('.cookie-list'); //隐藏rollStart之后的区块 rollStart.before('<div class="da_rollbox"></div>'); var offset = rollStart.offset(),objWindow = $(window),rollBox = rollStart.prev(), rollSet = $('.search,.weibo,.group'); //添加rollStart之前的随动区块 objWindow.scroll(function() { if (objWindow.scrollTop() > offset.top){ if(rollBox.html(null)){ rollSet.clone().prependTo('.da_rollbox'); } rollOut.fadeOut(); rollBox.show().stop().animate({marginTop: objWindow.scrollTop() - offset.top + 20},400); } else { rollOut.fadeIn(); rollBox.hide().stop().animate({marginTop:0},400); } }); |
固定版的jQuery代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //侧栏随动 var rollStart = $('.feed-mail'), //滚动到此区块的时候开始随动 rollSet = $('.search,.weibo,.group,.feed-mail,.tags'); //添加rollStart之前的随动区块 rollStart.before('<div class="da_rollbox" style="position:fixed;background-color:#fff;width:inherit;"></div>'); var offset = rollStart.offset(),objWindow = $(window),rollBox = rollStart.prev(); objWindow.scroll(function() { if (objWindow.scrollTop() > offset.top){ if(rollBox.html(null)){ rollSet.clone().prependTo('.da_rollbox'); } rollBox.show().stop().animate({top:0,paddingTop:15},400); } else { rollBox.hide().stop().animate({top:0},400); } }); |
不支持IE6,已有完整注释,根据需求添加模块class或者id的,使用方法可参考:实现wordpress随滚动条固定滚动效果
代码摘自:
http://www.daqianduan.com/jquery-roll-fixed/
http://www.daqianduan.com/jquery-roll/