效果一:侧边栏固定模块
来源:卢松松博客
Js代码
代码如下 | 复制代码 |
//侧栏跟随 (function() { var oDiv = document.getElementById("float"); var H = 0, iE6; var Y = oDiv; while (Y) { H += Y.offsetTop; Y = Y.offsetParent }; iE6 = window.ActiveXObject && !window.XMLHttpRequest; if (!iE6) { window.onscroll = function() { var s = document.body.scrollTop || document.documentElement.scrollTop; if (s > H) { oDiv.className = "div1 div2"; if (iE6) { oDiv.style.top = (s - H) + "px"; } } else { oDiv.className = "div1"; } }; } })();注:为了减少js文件引用,这段代码可放入任意JS文件中 CSS代码: /*侧栏跟随*/ <div id="box_float"> |
注:这里可以放文章列表、联盟广告,总之是个提高点击率的好方法。wordpress用户把此段代码添加到sidebar.php的侧栏位置即可。
特别提示:此代码试用与任何CMS系统,但该特效在IE6下无法实现,其余浏览器均没问题,同时侧栏其余部分应使用静态文件调用,使用JS调用栏目会出现代码重叠现象,调用联盟广告没问题。
效果二:侧边栏随窗口滚动(滑动效果)
来源:知更鸟
实现这个随窗口滚动效果,首先主题必须加载jQuery。已经完美解决侧边栏会顶着页脚无限滚下去的bug,一起看看代码:
代码如下 | 复制代码 |
<script type="text/javascript"> var documentHeight = 0; var topPadding = 15; $(function() { var offset = $("#sidebar").offset(); documentHeight = $(document).height(); $(window).scroll(function() { var sideBarHeight = $("#sidebar").height(); if ($(window).scrollTop() > offset.top) { var newPosition = ($(window).scrollTop() - offset.top) + topPadding; var maxPosition = documentHeight - (sideBarHeight + 368); if (newPosition > maxPosition) { newPosition = maxPosition; } $("#sidebar").stop().animate({ marginTop: newPosition }); } else { $("#sidebar").stop().animate({ marginTop: 0 }); }; }); }); </script> |
将上述javascript代码加到主题头部header.php模版中。修改其中的#sidebar为你的主题侧边选择器名称;根据不同的主题头部模版高度,适当调整其中的数字“368”。
效果三:添加侧边栏随滚动条滚动效果(无滑动)
来源:自由的风博客
给侧边栏的各个模块加上一些class标志,如下图框框里面的内容:
如果你的侧边栏之前已经有了这些class标志加以区分,只要使用就可以了,不用另外加。
在主题的js文件中加上如下代码:
代码如下 | 复制代码 |
var rollStart = $('.Statistics'), //滚动到此区块的时候开始随动 rollOut = $('.WidgetMeta,.Statistics'); //隐藏rollStart之后的区块 rollSet = $('.RRPosts,.TagsCloud'); //添加rollStart之前的随动区块 rollStart.before('<div class="rollbox" style="position:fixed;width:inherit;"></div>'); |
注:滚动区域的内容不能太长,不然会出现无限下拉的情况。
效果四:JQUERY SCROLL FOLLOW
Sidebar Follow插件
插件地址:sidebar follow
来自wuzhao写的插件,当页面滚动到跟随区域下方,跟随区域将固定在窗口上。适用于所有网站侧边栏。兼容IE8。
具体使用请查看此开源项目,还是比较方便的。希望自己也尽快学好js,写一些自己常用的优秀的插件来。
3 jQuery代码
如果嫌引用代码还不够方便,并且想尽可能的给页面“减负”,也可以使用如下代码:
JS
//侧栏跟随浏览器
代码如下 | 复制代码 |
$(function () { if ($(".fixed_side").length > 0) { var offset = $(".fixed_side").offset(); $(window).scroll(function () { var scrollTop = $(window).scrollTop(); //如果距离顶部的距离小于浏览器滚动的距离,则添加fixed属性。 if (offset.top < scrollTop) $(".fixed_side").addClass("fixed"); //否则清除fixed的css属性 else $(".fixed_side").removeClass("fixed"); }); } });CSS .fixed{position:fixed; top:20px; width:250px;} |
另外还有带滑动效果的侧边栏随窗口滚动jQuery代码:
代码如下 | 复制代码 |
<script> var documentHeight = 0; var topPadding = 15; $(function() { var offset = $("#sidebar").offset(); documentHeight = $(document).height(); $(window).scroll(function() { var sideBarHeight = $("#sidebar").height(); if ($(window).scrollTop() > offset.top) { var newPosition = ($(window).scrollTop() - offset.top) + topPadding; var maxPosition = documentHeight - (sideBarHeight + 300); if (newPosition > maxPosition) { newPosition = maxPosition; } $("#sidebar").stop().animate({ marginTop: newPosition }); } else { $("#sidebar").stop().animate({ marginTop: 0 }); }; }); }); </script> |
修改 #sidebar 为你网站侧边栏选择器名称即可。