艺灵设计

全部文章
×

jquery制作悬浮滚动楼层插件

作者:艺灵设计 - 来源:http://www.yilingsj.com - 发布时间:2015-10-02 23:20:37 - 阅: - 评:0 - 积分:0

摘要:
  上次网站改版时有一个悬浮滚动楼层的特效,然后今晚艺灵将其分享出来。艺灵已将其封装成jquery插件,调用只需要一行代码即可实现高大上的效果哦......

今天分享的是一个带悬浮滚动楼层的插件,这个jquery特效也是艺灵前段时间给公司写的,现在分享出来。来露个脸吧,动态效果图:jquery制作悬浮滚动楼层插件完工

下面我们来一步步完成这个效果,不会做的动动手码下代码,假以时日,你也可以写出一手特效来!

详细分析效果

1.左侧快捷通道默认隐藏,当滚动到一定高度后显示出来;
2.点击左侧的快捷通道时,页面内容会定位到对应的楼层。例如:点击3F,此时页面会直接定位到“欧式风格”;
3.页面正常滚动时,当滚动到不同楼层内容时左侧的快捷通道会激活当前楼层的样式。

html页面结构

分析完效果后开始码代码了,我们可以做一个简单的demo页面。我们给楼层取名为:ylsj-floor,为了方便定位,直接以数字作为楼层的标识号,即:yf_1f,yf_2f,......,yf_nf。左侧的快捷通道取名为:xf-floor,里面有多个子楼层取名为:xf-f_1,xf-f_2,......xf-f_n,快捷通道的激活样式名为:ylsj-xfs-on

html源码

  1. <div class="ylsj-floor yf_1f" style="background: #F09997;">第一层内容</div>
  2. <div class="ylsj-floor yf_2f" style="background: #0044CC;">第二层内容</div>
  3. <div class="ylsj-floor yf_3f" style="background: #00534E;">第三层内容</div>
  4. <div class="ylsj-floor yf_4f" style="background: #006600;">第四层内容</div>
  5. <div class="ylsj-floor yf_5f" style="background: #00CCFF;">第五层内容</div>
  6. <div class="ylsj-floor yf_6f" style="background: #F2DD8C;">第六层内容</div>
  7. <div class="xf-floor">
  8.  <a class="xf-f_1 ylsj-xfs-on">1F<span>中式风格</span></a>
  9.  <a class="xf-f_2">2F<span>韩式风格</span></a>
  10.  <a class="xf-f_3">3F<span>欧式风格</span></a>
  11.  <a class="xf-f_4">4F<span>田园风格</span></a>
  12.  <a class="xf-f_5">5F<span>童趣卡通</span></a>
  13.  <a class="xf-f_6">6F<span>办公工装</span></a>
  14. </div>

css样式

  1. <style type="text/css">
  2. /*页面简单重构*/
  3. *{margin: 0;padding: 0;}
  4. .ylsj-floor{min-height:600px;width:990px;margin:0 auto;text-align: center; font-size: 20px;}
  5. .xf-floor{width: 50px; position: fixed;left:80px;top:200px; display:none;text-align: center; font-size: 12px; font-family: "微软雅黑";}
  6. .xf-floor a{display: block;width: 100%;height:50px; position: relative; overflow: hidden;border:1px solid #D0656A; line-height: 50px;margin-bottom: -1px;}
  7. .xf-floor a span{display: block; width:26px; position: absolute;left:100%;top:0; padding: 9px 12px; background: #fff; line-height: 16px;}
  8. .xf-floor a:hover span,.xf-floor .ylsj-xfs-on span{left:0%;-webkit-transition: .6s;transition: .6s;;}
  9. </style>

现在静态效果已经有了,只差加特效了。

一、滚动到一定距离后显示快捷通道

jquery代码

  1. $(function(){
  2.  $(window).on('scroll',function(){
  3.   $w_t=$(this).scrollTop();/*滚动距顶值*/
  4.   /*判断条件,大于400时显示快捷通道*/
  5.   if($w_t>400){
  6.    $('.xf-floor').fadeIn(300);
  7.   }else{
  8.    $('.xf-floor').fadeOut(300);
  9.   };
  10.  })
  11. });

上面的代码表示:当页面滚动距离大于400时渐显左侧的快捷通道,否则渐变隐藏。

二、点击快捷通道定位楼层内容

jquery代码

  1. $(function(){
  2.  $('.xf-floor').find('a').on('mousedown',function(){
  3.   /*变量,控制激活样式*/
  4.   k=1;
  5.   /*楼层长度*/
  6.   var $len=$('.xf-floor').find('a').length;
  7.   /*楼层索引*/
  8.   var i=$(this).index('.xf-floor a');
  9.   /*激活时添加样式同辈去除样式*/
  10.   $(this).addClass('ylsj-xfs-on').siblings('a').removeClass('ylsj-xfs-on');
  11.   /*获取对应内容层的top值*/
  12.   var $fn_top=$('.yf_'+(i+1)+'f').offset().top;
  13.   /*页面在.5s内回滚top值到0*/
  14.   $("html,body").stop().animate({"scrollTop":$fn_top+"px"},500,function(){k=0;});
  15.   return false;
  16.  });
  17. });

此时我们的功能已经实现了90%了,已经可以满足正常人的需求了,来张动态图给看官增加下信息吧!gif动态图:点击左侧快捷通道已能够跳转到对应楼层内容动态gif有点卡,这个不是代码问题。

最后一步还是回到了第一步中,在滚动时判断高度来给左侧快捷通道添加激活样式。

三、页面滚动左侧快捷通道楼层激活

jquery代码

  1. $(function(){
  2.  $(window).on('scroll',function(){
  3.  /*计算当前页面共有几屏,n表示楼层1上面距离顶部的高度,通常情况下页面上面会有导航等元素占据一定高度,此案例已省去不必要元素故为0*/
  4.   n=0;
  5.   k=0;
  6.   j=($w_t - n)/600;
  7.   /*判断楼层数范围*/
  8.   if(j>0 && j<6){
  9.   /*取整*/
  10.   m_j=Math.floor(j);
  11.   };
  12.   /*变量,如果是0则添加样式,点击时不添加滚动样式*/
  13.   if(k==0){
  14.   $('.xf-floor').find('a').eq(m_j).addClass('ylsj-xfs-on').siblings('a').removeClass('ylsj-xfs-on');
  15.   };
  16.  })
  17. });

好了,大功告成,来张动态图欣赏下吧!gif图:jquery制作悬浮滚动楼层插件完工

怎么样,内容页滚动时左侧的快捷通道已能够自动识别楼层了,是不是很高大上?!

为了方便调用,艺灵已将此特效封装成插件,需要的看官猛戳下面的地址吧!

源码下载

  1. demo[源码]jquery制作悬浮滚动楼层插件.zip 

调用方法

  1. <!--jquery插件库,必须引用,如已引用可忽略,建议引用1.8.3+版本-->
  2. <script type="text/javascript" src="http://www.yilingsj.com/skin/yilingsj/js/jquery-1.8.3.min.js"></script>
  3. <!--引入文本缩放插件-->
  4. <script type="text/javascript" src="http://www.yilingsj.com/skin/yilingsj/demojs/ylsjfloorscroll.js"></script>
  5. <script type="text/javascript">
  6. $(function(){
  7. /*调用文本缩放插件*/
  8. $('样式名').ylsjfloorscroll({
  9.  yfs_xh:"yf_", /*楼层序列标识*/
  10.  yfs_child:"ylsj-xfs-list", /*楼层子级,避免污染a*/
  11.  yfs_on:"ylsj-xfs-on", /*激活样式*/
  12.  yfs_top:400, /*滚动多少高度后显示添加激活样式*/
  13.  yfs_time:500, /*滚动时间 */
  14.  yfs_ph:600, /*楼层高度,自定义值*/
  15.  yfs_starttop:0 /*楼层1f距顶部的值*/
  16. });
  17. });
  18. </script>

看官只需要在对应位置添加默认样式名即可实现一行代码实现想要的效果!

第8~16行精简版

  1. $('.xf-floor').ylsjfloorscroll();

----------完----------

转载声明:
  若亲想转载本文到其它平台,请务必保留本文出处!
本文链接:/jquery/2015-10-02/325.html

若亲不想直保留地址,含蓄保留也行。艺灵不想再看到有人拿我的技术文章到他的地盘或者是其它平台做教(装)程(B)而不留下我的痕迹。文章你可以随便转载,随便修改,但请尊重艺灵的劳动成果!谢谢理解。

亲,扫个码支持一下艺灵呗~
如果您觉得本文的内容对您有所帮助,您可以用支付宝打赏下艺灵哦!

Tag: jquery插件制作 悬浮楼层插件 滚动屏插件下载 jquery网页特效

上一篇: jquery制作网页文本字体缩放插件   下一篇: jquery特效之美化destoon默认的省市县地址三级联动

评论区