博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)_javascript技巧

当一个页面内容很长的时候,侧边栏栏目可能显得太短,当窗口滑动到靠下的位置,则侧边即失去了展示内容的机会。很多新闻资讯类网站如新浪、网易、CSDN等,会在边栏的右下角以固定的小弹窗形式,以提供更多的内容展示方式,但这并不适合博客和web2.0风格的网站。

现在很多的独立博客和网站如人人网等,都使用了让侧边栏模块随滚动条滑动而位置固定的效果。就是当一个页面很长的时候,设定侧栏内容会跟随滚动条,这种效果适用于评论较多、内容较长的网站。志文工作室调研了几种类似功能的实现方法,摘录之以供参考。

参考一、提高浏览量的特效:侧栏跟随滚动条

来源:卢松松博客
http://lusongsong.com/reed/453.html

代码如下:

CSS部分:

复制代码 代码如下:

/*侧栏跟随*/  
#box{float:left; position:relative;width:250px;}
.div1{width:250px;}
.div2{position:fixed;_position:absolute;top:0;z-index:250;}

注:每个网站的侧栏宽度不同,可根据你网页的宽度调整div1的宽度,我的是width:250px;,把这段代码添加到你的CSS文件中即可。

JS部分:

JavaScript代码

复制代码 代码如下:

//侧栏跟随   
(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文件中,比如我放在了util.js 文件里。

网页代码部分:

复制代码 代码如下:

<div id="box">  
<div id="float" class="div1">    
这里写你网站的代码与标签   
</div>  
</div>  

注:这里可以放文章列表、联盟广告,总之是个提高点击率的好方法。Z-blog用户把此段代码添加到single.html的侧栏位置即可。

特别提示:此代码试用与任何CMS系统,但该特效在IE6下无法实现,其余浏览器均没问题,同时侧栏其余部分应使用静态文件调用,使用JS调用栏目会出现代码重叠现象,调用联盟广告没问题。

参考二、添加侧边栏随滚动条滚动效果(示例)

来源:自由的风博客(http://loosky.net/?p=2028)

步骤如下:

1、给侧边栏的各个模块加上一些class标志
如果你的侧边栏之前已经有了这些class标志加以区分,只要使用就可以了,不用另外加。添加ID也可以实现效果,但w3c标准不允许同一页面出现多个同样的ID,所以最好用class样式方式。

2、在网站页面中的任意js文件中加上如下代码:

JavaScript代码

复制代码 代码如下:

var rollStart = $('.Statistics'), //滚动到此区块的时候开始随动   
rollOut = $('.WidgetMeta,.Statistics'); //隐藏rollStart之后的区块   
rollSet = $('.RRPosts,.TagsCloud'); //添加rollStart之前的随动区块   

rollStart.before('<div class="rollbox" style="position:fixed;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('.rollbox');   
}   
rollOut.fadeOut();   
rollBox.show().stop().animate({top:0,paddingTop:10},400);   
} else {   
rollOut.fadeIn();   
rollBox.hide().stop().animate({top:0},400);   
}   
});  

注:滚动区域的内容不能太长,不然会出现无限下拉的情况。

参考三、JQUERY SCROLL FOLLOW

这是一个插件,添加步骤也很简单,下载压缩包解压到网站目录,然后按照步骤操作即可。
详细可参考:
http://kitchen.net-perspective.com/open-source/scroll-follow/

示例页面:
http://kitchen.net-perspective.com/sf-example-1.html
http://kitchen.net-perspective.com/sf-example-2.html
http://kitchen.net-perspective.com/sf-example-3.html
http://kitchen.net-perspective.com/sf-example-4.html

侧栏模块随窗口滑动(示例页面)
来源:http://www.mb-wx.com/common/msay.js
这段代码来自木本无心的博客(pjblog),原理很简单,就是当窗口到达指定模块位置后,开始判断其距离顶端的距离并进行调整。该段代码结合应用在了志文工作室博客侧边栏。

JavaScript代码

复制代码 代码如下:

//侧栏模块随窗口滑动   
jQuery(document).ready(function($) {   
 $(function() {   
  var $sidebar = $("#Side_relativelog"),   
  $window = $(window),   
  offset = $sidebar.offset(),   
  topPadding = 0;   
  $window.scroll(function() {   
   if ($window.scrollTop() > offset.top) {   
    $sidebar.stop().animate({   
     marginTop: $window.scrollTop() - offset.top + topPadding   
    });   
   } else {   
    $sidebar.stop().animate({   
     marginTop: 0   
    });   
   }   
  });   
 });   
}); 

时间: 2024-11-03 06:40:44

博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)_javascript技巧的相关文章

wap手机图片滑动切换特效无css3元素js脚本编写_javascript技巧

手机图片滑动切换,网上有很多这样的例子,但都借助于其他组件,让代码混乱的不行:还有就是用到css3里的 transform:translate(x,y);移动元素,不过发现在不支持css3的设备上马上完蛋了,所 有下定决心自己做一个,谁知出现了很多的问题,其中最重要的是给图片加链接,网页中的上下滚动条不能在拖动图片的时候滚动,并且不能兼容pc机器上的拖动:在这里就简单介绍一下遇到的问题和解决的方法: 问题一:给图片加上链接后,在拖动的时候总是跳到其他页面: 问题根源主要是不能判断是点击还是拖动,

基于JavaScript实现div层跟随滚动条滑动_javascript技巧

在一个页面放2个悬浮框,悬浮框随页面的上下滚动有上下波动的效果,最终固定在同一位置 效果展示如下所示: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavScript页面悬浮框- 何问起</title><base target="_blank" /> <

打开关闭我的博客侧边栏——Word 2007高级应用7

打开关闭我的博客侧边栏--Word 2007高级应用(七) My Blogs按钮的实现主要有如下要求: Word 2007启动的时候,"我的博客"侧边栏会被加载但不显示. 当My Blogs按钮处于按下状态时,显示"我的博客"侧边栏:当My Blogs按钮处于释放状态时,隐藏"我的博客"侧边栏. 显示"我的博客"侧边栏的途径只有一个,就是通过My Blogs按钮,但隐藏它则有两个途径:通过My Blogs按钮或者位于它的右上角

填充我的博客侧边栏——Word 2007高级应用

填充我的博客侧边栏--Word 2007高级应用 假设"我的博客"侧边栏的相关文件安置在My Blogs文件夹里,该文件夹的结构如下图所示: 图 1 虽然我们可以通过枚举My Blogs的子文件夹来填充cbxBlogs控件,然而我希望设计一个类来表示博客并且实现一定的数据绑定.回顾上一篇文章"创建我的博客侧边栏 --Word 2007高级应用(二)","我的博客"侧边栏应该具备如下特性: 它会在启动时读取My Blogs文件夹里的相关信息,并且填

创建我的博客侧边栏——Word 2007高级应用

创建我的博客侧边栏--Word 2007高级应用 我不清楚以往怎样才能做到这样,但现在有了VSTO,你可以把以往所学的Windows Forms的技巧都用上,实际上,这样一个侧边栏就是一个用户控件(User Control).现在,我们就来开发"我的博客"侧边栏.首先,在项目里添加一个名为MyBlogsUserControl的用户控件,接着在它上面拖 放下列控件: cbxBlogs:用于显示博客列表 btnViewBlog:在Internet Explorer中打开选定博客的主页 lb

前端开发-新手求助,我写的js侧边栏上下滑动固定效果,为什么我的一直上下抖动

问题描述 新手求助,我写的js侧边栏上下滑动固定效果,为什么我的一直上下抖动 鼠标滚动得快的时候就出现问题,怎么解决啊? <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> body{ height: 2500px; } #Div{ backgroun

Yii实现单用户博客系统文章详情页插入评论表单的方法_php实例

本文实例讲述了Yii实现单用户博客系统文章详情页插入评论表单的方法.分享给大家供大家参考,具体如下: action部分: <?php function test($objs) { $objs->var=10; } class one { public $var=1; } $obj=new one(); echo $obj->var.'<p>'; test($obj); echo $obj->var; exit; PostController.php页面: ... /**

我参加了Cloud Foundry博客征文大赛,我的参赛作品是:使用Node.js + Mongodb构建基于Cloud Foundry的项目

问题描述 我参加了CloudFoundry博客征文大赛,我的参赛作品是:使用Node.js+Mongodb构建基于CloudFoundry的项目www.wordmars.netwww.jzjyfc.comwww.fedtr.com 解决方案 解决方案二: 解决方案三: 解决方案四: 解决方案五: 好东西啊,,,,,解决方案六: 解决方案七: 不错,好东西

jQuery 顶部导航跟随滚动条滚动固定浮动在顶部_jquery

  复制代码 代码如下: <section> <article class="left"> <p> </p> <ul> <li><a href="http://freejs.net/article_jquerywenzi_149.html" title="Ajax 动态加载内容">Ajax 动态加载内容</a></li> <li>