L'exemple de cet article décrit l'implémentation jQuery du code d'effet du menu à onglets coulissants du site Web chinois MSN. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
Il s'agit d'un code jQuery pour implémenter la porte coulissante du site Web chinois Msn. L'effet obtenu avec jQuery est très intelligent. Il utilise un calque positionné de manière absolue pour obtenir l'effet de mouvement, mais l'expérience est grandement améliorée.
La capture d'écran de l'effet en cours d'exécution est la suivante :
L'adresse de la démo en ligne est la suivante :
http://demo.jb51.net/js/2015/jquery-f-msn-tab-menu-style-codes/
Le code spécifique est le suivant :
<!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>
J'espère que cet article sera utile à la programmation jQuery de chacun.