弄个侧边栏某个模块随窗口一起滚动,可能其他童鞋也想给主题加上这个小功能,贴出来,供大家参考。
方法一:
很简单,前提是你的主题必须已加载了jQuery。
把下面代码加到主题头部header.php模版中即可:
- <script type="text/javascript">
- $(function() {
- var $sidebar = $("#sidebar"),
- $window = $(window),
- offset = $sidebar.offset(),
- topPadding = 15;
- $window.scroll(function() {
- if ($window.scrollTop() > offset.top) {
- $sidebar.stop().animate({
- marginTop: $window.scrollTop() - offset.top + topPadding
- });
- } else {
- $sidebar.stop().animate({
- marginTop: 0
- });
- }
- });
- });
- </script>
可根据不同的主题模版,自行修改一下其中的DIV标签#sidebar名称。此方法兼容所有浏览器。
HotNews主题也可使用该功能,默认是整个侧边栏随窗口滚动,受主题布局功能限制,单独滚动某个模块效果不是很理想。
参考自:http://css-tricks.com/scrollfollow-sidebar/
WordPress主题侧边栏随窗口滚动,貌似这个特效目前很流行,上面的内容是《jQuery实现侧边栏随窗口滚动》的教程,不过有童鞋发现加上这个JS特效后,侧边栏会顶着页脚无限滚下去,那就再发一个比较完美的,上代码:
- <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”为你的主题侧边选择器名称(id);例如:#categories-2,categories-2为ID。
根据不同的主题头部模版高度,适当调整其中的数字“368”(默认数字为HotNews主题的)。
个人认为,网页加上这个特效后,侧边模块在眼前晃晃悠悠的,并不是很舒服,适合内容较少的侧边栏或者侧边最下面的固定模块比如广告滚动。萝卜青菜各有所爱,大家接着折腾吧。
2013年6月8日 下午4:23 1F
写的很好,让我学习到了!
希望主人多写一些技术类的文档。