最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery 打造動態(tài)下滑菜單實(shí)現(xiàn)說明

 更新時(shí)間:2010年04月15日 22:03:38   作者:  
本教程將分步講解如何使用JQuery和CSS打造一個(gè)炫酷動感菜單。
jQuery的"write less, do more"的特性可謂是家喻戶曉,即使沒有很豐富JS編程經(jīng)驗(yàn)的人,也可以通過其提供的API很快學(xué)會如何使用,當(dāng)然,如果您經(jīng)驗(yàn)豐富,我還是建議您可以理解jQuery各主要函數(shù)的實(shí)現(xiàn)原理,其他不說了,直接看看如何用它來實(shí)現(xiàn)菜單神奇的效果吧。

Step1 - HTML結(jié)構(gòu)
  看一下菜單的HTML代碼,跟平常的菜單代碼沒有什么區(qū)別:
復(fù)制代碼 代碼如下:

<div id="menu" class="menu">
<ul>
<li><a href="javascript:;">Home</a></li>
<li><a href="javascript:;">HTML/CSS</a></li>
<li><a href="javascript:;">JavaScript</a></li>
<li><a href="javascript:;">Resources</a></li>
<li><a href="javascript:;">Tutorials</a></li>
<li><a href="javascript:;">About</a></li>
</ul>
</div>

  關(guān)鍵在于利用腳本在每個(gè)錨點(diǎn)(a元素)中建立幾個(gè)分隔層,這樣就可以在鼠標(biāo)懸停時(shí)分別控制它們產(chǎn)生動畫。為此,我們要在DOM加載完成時(shí)候修改DOM的結(jié)構(gòu),使得每個(gè)錨點(diǎn)代碼變成如下:
復(fù)制代碼 代碼如下:

<a href="javascript:;">
<span class="out">Home</span>
<span class="bg"></span>
<span class="over">Home</span>
</a>

  原先的每個(gè)錨點(diǎn)中的內(nèi)容會被附加到兩個(gè)span元素(.out和.over)里面,另外一個(gè)span元素(.bg)為背景圖片層。
  至于如何修改DOM結(jié)構(gòu),JS代碼將在Step3中講解。
Step2 - CSS樣式
  在示例中,展示了兩種樣式,有使用背景圖的和沒有使用背景圖的(具體查看演示),您也可以自由定制自己的樣式,以設(shè)計(jì)出更炫酷的菜單,這里提供基本的樣式和解釋:
復(fù)制代碼 代碼如下:

/* 以下是菜單基本的樣式 */
.menu ul li {
float: left;
/* 菜單子元素的內(nèi)容超出不可見 */
overflow: hidden;
/* 以下省略部分代碼 */
}
.menu ul li a {
/* 必須是相對定位 */
position: relative;
display: block;
width: 110px;
/* 以下省略部分代碼 */
}
.menu ul li a span {
/* 所有層將使用絕對定位 */
position: absolute;
left: 0;
width: 110px;
}
.menu ul li a span.out {
top: 0px;
}
.menu ul li a span.over,
.menu ul li a span.bg {
/* 起初.over層和.bg層相對a元素-45px以達(dá)到隱藏的效果 */
top: -45px;
}
/* 以下是使用背景圖的示例 */
#menu {
  /* 菜單背景 */
background:url(bg_menu.gif) scroll 0 -1px repeat-x;
border:1px solid #CCC;
}
#menu ul li a {
color: #000;
}
#menu ul li a span.over {
color: #FFF;
}
#menu ul li span.bg {
  /* 指定高度和背景圖 */
height: 45px;
background: url(bg_over.gif) center center no-repeat;
}

  您也可以在自行定制CSS樣式,這里還提供了簡化版的樣式(查看演示)
Step3 - JavaScript代碼
  首先要做的是,實(shí)現(xiàn)Step1中所說的,在DOM加載完成后修改其DOM結(jié)構(gòu),具體做法如下:
復(fù)制代碼 代碼如下:

// 把每個(gè)a中的內(nèi)容包含到一個(gè)層(span.out)中,
// 然后再在span.out層后面追加背景圖層(span.bg)
$("#menu li a").wrapInner( '<span class="out"></span>' )
         .append( '<span class="bg"></span>' );
// 循環(huán)為菜單的a每個(gè)添加一個(gè)層(span.over)
$("#menu li a").each(function() {
  $( '<span class="over">' + $(this).text() + '</span>' )
         .appendTo( this );
});

在講動畫代碼之前,先看一下動畫的過程,如下圖所示:

在Step1中我們知道DOM加載后,a元素中建立了幾個(gè)分隔層,在Step2中,CSS樣式中,我們設(shè)置了span.bg和span.over層的top屬性為-45px,因?yàn)閟pan元素已設(shè)置為絕對定位,它將相對于li a 元素向上-45px,因?yàn)閘i元素內(nèi)容超出不可見,所以開始時(shí),.bg層和.over層位于空間范圍外。

  我們要設(shè)置的動畫過程是,當(dāng)鼠標(biāo)懸停時(shí),三個(gè)層同時(shí)向下移動,span.out層向下移動至移除可見范圍,span.over和span.bg移動進(jìn)入可見區(qū)域,設(shè)置span.bg速度比span.over速度稍快,錯(cuò)位產(chǎn)生更加效果。

  要實(shí)現(xiàn)這樣動畫效果,使用jQuery的.animate()方法很容易就可以實(shí)現(xiàn),以下是JS代碼和解釋:
復(fù)制代碼 代碼如下:

$("#menu li a").hover(function() {
  // 鼠標(biāo)懸停時(shí)候被觸發(fā)的函數(shù)
$(".out",this).stop().animate({'top':'45px'},250);//下滑至隱藏
$(".over",this).stop().animate({'top':'0px'},250); //下滑至顯示
$(".bg",this).stop().animate({'top':'0px'},120); //下滑至顯示
}, function() {
// 鼠標(biāo)移出時(shí)候被觸發(fā)的函數(shù)
$(".out",this).stop().animate({'top':'0px'},250); //上滑至顯示
$(".over",this).stop().animate({'top':'-45px'},250);//上滑至隱藏
$(".bg",this).stop().animate({'top':'-45px'},120);//上滑至隱藏
});

總結(jié)
  以上講解了如何一步步打造jQuery動態(tài)下滑菜單,您可以按部就班自己實(shí)現(xiàn)一個(gè),也可以下載源代碼修改定制,當(dāng)然,您有什么好的提議或者有什么問題,都可以給我留言。

 查看最終效果

 jOuery 動態(tài)下滑菜單打包下載

PS:本文由維奇總結(jié)

相關(guān)文章

  • jQuery實(shí)現(xiàn)定時(shí)隱藏對話框的方法分析

    jQuery實(shí)現(xiàn)定時(shí)隱藏對話框的方法分析

    這篇文章主要介紹了jQuery實(shí)現(xiàn)定時(shí)隱藏對話框的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery定時(shí)隱藏對話框的相關(guān)函數(shù)、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2018-02-02
  • jquery仿京東導(dǎo)航/仿淘寶商城左側(cè)分類導(dǎo)航下拉菜單效果

    jquery仿京東導(dǎo)航/仿淘寶商城左側(cè)分類導(dǎo)航下拉菜單效果

    jquery實(shí)現(xiàn)下拉菜單效果,jquery寫的仿京東導(dǎo)航菜單,一個(gè)經(jīng)典的左側(cè)多級導(dǎo)航菜單,學(xué)會了可以任意改變布局,感興趣的朋友可以參考下哈,希望對你有所幫助
    2013-04-04
  • jQuery學(xué)習(xí)筆記 更改jQuery對象

    jQuery學(xué)習(xí)筆記 更改jQuery對象

    jQuery提供了一些方法,使流程變?yōu)樯蒵Query對象A,操作jQuery對象A;更改為jQuery對象B,操作jQuery對象B
    2012-09-09
  • jQuery取得select選擇的文本與值的示例

    jQuery取得select選擇的文本與值的示例

    取得select選擇的文本與值的情形在很多地方都有用到,且實(shí)現(xiàn)的方法有很多,在下面的示例中將為大家詳細(xì)介紹下jquery是如何做到的
    2013-12-12
  • jQuery.fn和jQuery.prototype區(qū)別介紹

    jQuery.fn和jQuery.prototype區(qū)別介紹

    jQuery.fn和jQuery.prototype想必大家對它并不陌生吧,那么你們知道它們之間的區(qū)別嗎?在本文有個(gè)不錯(cuò)的示例大家可以參考下
    2013-10-10
  • js實(shí)現(xiàn)表格篩選功能

    js實(shí)現(xiàn)表格篩選功能

    本文主要介紹了js實(shí)現(xiàn)表格篩選功能的代碼。具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • Jquery 數(shù)組操作大全個(gè)人總結(jié)

    Jquery 數(shù)組操作大全個(gè)人總結(jié)

    jQuery的數(shù)組處理,便捷,功能齊全. 最近的項(xiàng)目中用到的比較多,最近時(shí)間緊迫,今天抽了些時(shí)間回過頭來看 jQuery中文文檔順便對jQuery數(shù)組做個(gè)總結(jié)
    2013-11-11
  • jquery實(shí)現(xiàn)表單獲取短信驗(yàn)證碼代碼

    jquery實(shí)現(xiàn)表單獲取短信驗(yàn)證碼代碼

    本文主要分享了jquery實(shí)現(xiàn)表單獲取短信驗(yàn)證碼的代碼。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • jquery驗(yàn)證表單中的單選與多選實(shí)例

    jquery驗(yàn)證表單中的單選與多選實(shí)例

    這里所說的,用jquery去驗(yàn)證某一組多選至少要有一個(gè)選中,某一組單選至少有一個(gè)選中,,大家都知道單一的一個(gè)用js比較好驗(yàn)證,但是想要用jquery的驗(yàn)證并且用到j(luò)query驗(yàn)證的提示信息,那么這就不好辦了
    2013-08-08
  • jQuery插件echarts去掉垂直網(wǎng)格線用法示例

    jQuery插件echarts去掉垂直網(wǎng)格線用法示例

    這篇文章主要介紹了jQuery插件echarts去掉垂直網(wǎng)格線用法,結(jié)合實(shí)例形式對比分析了jQuery圖標(biāo)插件echarts針對垂直網(wǎng)格線的相關(guān)設(shè)置操作技巧,需要的朋友可以參考下
    2017-03-03

最新評論

长丰县| 历史| 纳雍县| 万宁市| 库伦旗| 金堂县| 繁昌县| 古丈县| 荔波县| 买车| 七台河市| 天等县| 旬邑县| 吴堡县| 曲松县| 遵义县| 洞口县| 丰顺县| 农安县| 沁源县| 祁阳县| 邯郸市| 罗江县| 德惠市| 资中县| 中阳县| 齐齐哈尔市| 泗水县| 沿河| 长春市| 德清县| 比如县| 宣武区| 美姑县| 泸定县| 平顶山市| 禄丰县| 绥芬河市| 马鞍山市| 永川市| 嫩江县|