jQuery实现MSN中文网滑动Tab菜单效果代码


Posted in Javascript onSeptember 09, 2015

本文实例讲述了jQuery实现MSN中文网滑动Tab菜单效果代码。分享给大家供大家参考。具体如下:

这是一款jQuery实现Msn中文网的滑动滑动门代码,利用jQuery实现的效果,代码很巧妙,就是利用一个绝对定位的层来实现移动效果,但是体验度大幅提升了。

运行效果截图如下:

jQuery实现MSN中文网滑动Tab菜单效果代码

在线演示地址如下:

具体代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<meta http-equiv="Refresh" content="3600" />
<title>MSN中文网:时尚生活 白领门户</title>
<style>
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{
 margin: 0;
 padding: 0;
}
ol,ul{
 list-style: none;
}
.clearfix:after{
 content: ".";
 display: block;
 height: 0;
 clear: both;
 visibility: hidden;
}
.clearfix{
 display: inline-block;
}
/* Hides from IE-mac \*/
* html .clearfix{
 height: 1%;
}
.clearfix{
 display: block;
}
/* End hide from IE-mac */
body{
 font-size: 12px;
 font-family: "Microsoft Yahei" ,Tahoma, "SimSun";
 color: #333;
 background: #fff;
 line-height: 1.5;
}
.main_l{
 width: 513px;
 position: relative;
 float: left;
}
.main_title{
 height: 28px;
 overflow: hidden;
 background: url(images/s3.png) 0 0 no-repeat;
 float: left;
}
.main_title ul{
 font-size: 14px;
}
.main_title ul li{
 height: 23px;
 line-height: 23px;
 padding-left: 16px;
 padding-right: 16px;
 padding-top: 1px;
 background: #f1f1f1;
 border-top: #fff 3px solid;
 border-left: #fff 1px solid;
 border-right: #fff 1px solid;
 float: left;
}
.main_title ul .on{
 height: 22px;
 line-height: 22px;
 padding-left: 16px;
 padding-right: 16px;
 background: #fff;
 border-top: #009ad9 4px solid;
 border-left: #009ad9 1px solid;
 border-right: #009ad9 1px solid;
 border-bottom: #fff 1px solid;
}
.main_title ul .on a{
 font-weight: 700;
}
.main_title span{
 line-height: 24px;
 padding-top: 4px;
 padding-right: 10px;
 float: right;
}
.main_l .main_title{
 width: 513px;
 overflow: hidden;
}
.main_l .main_content{
 width: 513px;
}
.main_l .main_content .main_box{
 width: 339px;
 overflow: hidden;
 float: left;
}
.main_l .main_content .main_box .list{
 font-size: 14px;
 line-height: 26px;
}
.main_l .main_content .main_box .list ul{
 padding: 8px 0;
 border-bottom: #e1e1e1 1px solid;
 width: 339px;
 overflow: hidden;
}
.main_l .main_content .main_box .list ul li{
 padding-left: 25px;
 background: url(images/s3.png) 3px -300px no-repeat;
 width: 600px;
}
.main_l .main_content .main_box .list ul .v{
 background: url(images/s3.png) 3px -330px no-repeat;
}
.main_l .main_content .main_box .list ul .top{
 background: none;
 padding-left: 0;
 text-align: center;
 font-size: 14px;
 font-weight: 700;
 width: 339px;
}
.tab div.t.none{
 display: none;
}
.tab .main_title ul.fx li{
 background-color: transparent;
}
.tab .main_title ul.fx li, .tab .main_title ul.fx li.on{
 border-top: 0;
 margin-top: 3px;
 padding-top: 0;
}
.tab .main_title ul.fx li.on{
 border-left-color: transparent;
 border-right-color: transparent;
 border-bottom-width: 0;
}
.tab .main_title ul.fx{
 z-index: 20;
 position: relative;
}
.tab .main_title div.animate{
 height: 23px;
 position: absolute;
 top: 0;
 border-top: #009ad9 4px solid;
 border-left: #009ad9 1px solid;
 border-right: #009ad9 1px solid;
 border-bottom: #fff 1px solid;
 background-color: #fff;
}
</style>
<script src="jquery-1.6.2.min.js"></script>
<script>
var msn = msn || {};
msn.hp = msn.hp || {};
msn.hp.tab = {
 t: null,
 delayTime: 150,
 fx: true,
 tab: function(b) {
 $(b).siblings().removeClass("on");
 $(b).addClass("on");
 var c = $(b).parents(".tab").find("div.t");
 var a = c.eq($(b).index());
 c.addClass("none");
 a.removeClass("none");
 if (this.fx) {
  if ($(b).parent().hasClass("nofx")) {
  return
  }
  $(b).parent().siblings(".animate").width($(b).outerWidth() - 2).animate({
  left: $(b).position().left
  },
  "slow")
 }
 },
 delayTab: function(b, a) {
 clearTimeout(b.t);
 this.t = setTimeout(function() {
  b.tab(a)
 },
 this.delayTime)
 },
 init: function() {
 var a = this;
 a.animate();
 if (window.Touch) {
  $(".tab .main_title>ul>li[class!='on']>a").click(function() {
  return false
  })
 }
 $(".tab .main_title>ul>li,.tab>ul.hotread_menu>li").hover(function() {
  a.delayTab(a, this)
 },
 function() {
  clearTimeout(a.t)
 })
 },
 animate: function() {
 if (!this.fx) {
  return
 }
 $(".tab .main_title>ul").each(function() {
  if (!$(this).hasClass("nofx")) {
  $(this).addClass("fx")
  }
 });
 $(".tab .main_title").each(function(a, b) {
  if ($(this).find("ul").hasClass("nofx")) {
  return
  }
  $(b).append("<div class='animate' ></div>");
  $(b).find(".animate").width($(b).find("ul>li.on").outerWidth() - 2).css("left", $(b).find("ul>li.on").position().left)
 })
 }
};
$(document).ready(function() {
 var a = msn.hp;
 a.tab.init();
});
</script>
</style>
</head>
<body>
<div class="clearfix">
 <div class="main_l tab">
  <div class="main_title">
   <ul class="fx">
    <li class="">Tab1</li>
    <li><a href="#">Tab2</a></li>
    <li><a href="#">Tab3</a></li>
    <li class="on"><a href="#">Tab4</a></li>
   </ul>
   <span><a href="#"></a>更多>> </span>
   <div class="animate" style="width: 60px; left: 186px;"></div><!--这是移动的关键-->
  </div>
  <div class="main_content clearfix">
   <div class="main_box t none">
    <div class="list">
     <ul>
      <li class="top"><a href="#">双色球井喷36注498万</a> </li>
      <li><a href="#">停电促彩民中500万</a> </li>
      <li><a href="#">白领讲述坑爹的理赔经历</a> </li>
      <li><a href="#">年入13万怎规划</a> </li>
      <li><a href="#">铂金遇冷升值潜力超黄金</a> </li>
      <li><a href="#">投资铂金正当时</a> </li>
      <li><a href="#">打败巴菲特10方法:先还清你信用卡欠款</a> </li>
      <li><a href="#">中国股市越生越穷越穷越生</a> </li>
      <li><a href="#">熊猫币更来菜</a> </li>
     </ul>
    </div>
   </div>
   <div class="main_box t none">
    <div class="list">
     <ul>
      <li class="top"><a href="#">外媒称奢侈品炫富割裂中国社会收入现鸿沟</a> </li>
      <li><a href="#">京新盘价下调有限</a> </li>
      <li><a href="#">住宅周签约同比降七成</a> </li>
      <li><a href="#">基金抱团表现低迷</a> </li>
      <li><a href="#">重仓股你加我减起内讧</a> </li>
      <li><a href="#">李旭利老鼠仓资金过亿</a> </li>
      <li><a href="#">昔日私募巨星被拘</a> </li>
      <li><a href="#">传统封基全线下挫</a> </li>
      <li><a href="#">基金经理热望11月曙光</a> </li>
      <li><a href="#">福布斯统计:中国四百名富豪身家近三万亿</a> </li>
      <li><a href="#">电销保险骚扰再现新变种</a> </li>
      <li><a href="#">车贷成鸡肋喊停</a> </li>
      <li><a href="#">部分银行违规营销信用卡</a> <a href="#">银行千亿投理财</a> </li>
      <li><a href="#">债市长期投资机会来临</a> <a href="#">或将率先迎来转机</a> </li>
      <li><a href="#">短期流动性仍偏紧</a> <a href="#">密切关注投资通胀数据</a> </li>
     </ul>
    </div>
   </div>
   <div class="main_box t none">
    <div class="list">
     <ul>
      <li class="top"><a href="#">住房公积金面临尴尬:买房远不够治病又违规</a> </li>
      <li><a href="#">房租比房价更伤人房租暴涨的十大后果</a> </li>
      <li><a href="#">郎咸平发危言楼市进入高风险低收入时代</a> </li>
      <li><a href="#">四环外低价房33万</a> <a href="#">2.1万住西四环五棵松</a> </li>
      <li><a href="#">金九银十惨淡开局降51万特价房杀出重围</a> </li>
      <li><a href="#">迪拜塔里的奢侈酒店全球最奢侈酒店大PK</a> </li>
      <li><a href="#">全球生活成本最低十城市中国无城市上榜</a> </li>
      <li><a href="#">与亲密爱人沐浴看让男女疯狂的情趣浴室</a> </li>
      <li><a href="#">高端住宅成“宠儿”终极置业大推荐</a> </li>
      <li><a href="#">上师大“双优”房两居整租限量放送</a> </li>
     </ul>
    </div>
   </div>
   <div class="main_box t">
    <div class="list">
     <ul>
      <li class="top"><a href="#">最适合80后的三套婚房案例简约温馨装修</a> </li>
      <li><a href="#">小女人装136平4室2厅2卫绝美气质家</a> </li>
      <li><a href="#">10万网友推崇的60套迷人简约样板间</a> </li>
      <li><a href="#">42图记录三层复式美宅装修历程(组图)</a> </li>
      <li><a href="#">剩女自装90平混搭风格三居室(组图)</a> </li>
      <li><a href="#">六万将60平旧房改成2室2厅豪华公寓</a> </li>
      <li><a href="#">96平二手房变简约北欧风情三口之家</a> </li>
      <li><a href="#">网友晒89平米二室二厅浪漫惬意婚房</a> </li>
      <li><a href="#">一室二厅的温馨二人世界很红火(图)</a> </li>
      <li><a href="#">85后小媳妇装92平米简约奢华三居</a> </li>
     </ul>
    </div>
   </div>
  </div>
 </div>
</div>
</body>
</html>

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
动态调用css文件——jquery的应用
Feb 20 Javascript
javascript jQuery $.post $.ajax用法
Jul 09 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
actionscript与javascript的区别
May 25 Javascript
jQuery 三击事件实现代码
Sep 11 Javascript
JavaScript数组合并的多种方法
May 22 Javascript
解决bootstrap-select 动态加载数据不显示的问题
Aug 10 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
Apr 01 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
Sep 11 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
Mar 24 Javascript
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 #Javascript
JS实现自动变换的菜单效果代码
Sep 09 #Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 #Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 #Javascript
使用impress.js制作幻灯片
Sep 09 #Javascript
谈谈impress.js初步理解
Sep 09 #Javascript
javascript实现base64 md5 sha1 密码加密
Sep 09 #Javascript
You might like
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
jQuery使用手册之一
2007/03/24 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
使用python解析xml成对应的html示例分享
2014/04/02 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
C语言笔试题回忆
2015/04/02 面试题
教育实习生的自我评价分享
2013/11/21 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
企业消防安全责任书
2014/07/23 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
运动会报道稿300字
2014/10/02 职场文书
给老婆的检讨书
2015/01/27 职场文书
李白故里导游词
2015/02/12 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python
解决Redis启动警告问题
2022/02/24 Redis