欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于JS快速實(shí)現(xiàn)導(dǎo)航下拉菜單動(dòng)畫(huà)效果附源碼下載

 更新時(shí)間:2016年10月27日 15:35:39   投稿:mrr  
這是一個(gè)帶變形動(dòng)畫(huà)特效的下拉導(dǎo)航菜單特效。該導(dǎo)航菜單在菜單項(xiàng)之間切換時(shí),下拉菜單會(huì)快速的根據(jù)菜單內(nèi)容的大小來(lái)動(dòng)態(tài)變形,顯示合適的下拉菜單大小,效果非常棒,對(duì)導(dǎo)航下拉菜單效果感興趣的朋友一起通過(guò)本文學(xué)習(xí)吧

這是一個(gè)帶變形動(dòng)畫(huà)特效的下拉導(dǎo)航菜單特效。該導(dǎo)航菜單在菜單項(xiàng)之間切換時(shí),下拉菜單會(huì)快速的根據(jù)菜單內(nèi)容的大小來(lái)動(dòng)態(tài)變形,顯示合適的下拉菜單大小,效果非常棒。

快速的導(dǎo)航下拉菜單動(dòng)畫(huà)效果如下所示:

效果演示         源碼下載

HTML

該導(dǎo)航菜單的HTML結(jié)構(gòu)如下:

<header class="cd-morph-dropdown"> 
<a href="#0" class="nav-trigger">Open Nav<span aria-hidden="true"></span></a> 
<nav class="main-nav"> 
<ul> 
<li class="has-dropdown gallery" data-content="about"> 
<a href="#0">About</a> 
</li> 
<li class="has-dropdown links" data-content="pricing"> 
<a href="#0">Pricing</a> 
</li> 
<li class="has-dropdown button" data-content="contact"> 
<a href="#0">Contact</a> 
</li> 
</ul> 
</nav> 
<div class="morph-dropdown-wrapper"> 
<div class="dropdown-list"> 
<ul> 
<li id="about" class="dropdown gallery"> 
<!-- dropdown content here --> 
</li> 
<li id="pricing" class="dropdown links"> 
<!-- dropdown content here --> 
</li> 
<li id="contact" class="dropdown button"> 
<!-- dropdown content here --> 
</li> 
</ul> 
<div class="bg-layer" aria-hidden="true"></div> 
</div> <!-- dropdown-list --> 
</div> <!-- morph-dropdown-wrapper --> 
</header>

CSS樣式請(qǐng)參照源碼中的css/style.css文件。

Javascript

為了實(shí)現(xiàn)這個(gè)導(dǎo)航菜單,特效中創(chuàng)建了一個(gè)morphDropdown對(duì)象。并使用bindEvents ()方法來(lái)處理元素的事件。

function morphDropdown( element ) { 
this.element = element; 
this.mainNavigation = this.element.find('.main-nav'); 
this.mainNavigationItems = this.mainNavigation.find('.has-dropdown'); 
this.dropdownList = this.element.find('.dropdown-list'); 
//... 
this.bindEvents(); 
}
bindEvents()方法用于在.has-dropdown和.dropdown元素上檢測(cè)鼠標(biāo)進(jìn)入和鼠標(biāo)離開(kāi)事件。
morphDropdown.prototype.bindEvents = function() { 
var self = this; 
this.mainNavigationItems.mouseenter(function(event){ 
//hover over one of the nav items -> show dropdown 
self.showDropdown($(this)); 
}).mouseleave(function(){ 
//if not hovering over a nav item or a dropdown -> hide dropdown 
if( self.mainNavigation.find('.has-dropdown:hover').length == 0 && self.element.find('.dropdown-list:hover').length == 0 ) self.hideDropdown(); 
}); 
//... 
}; 
showDropdown方法用于處理寬度、高度和.dropdown-list元素的translateX值,以及放大和縮小.bg-layer元素。
morphDropdown.prototype.showDropdown = function(item) { 
var selectedDropdown = this.dropdownList.find('#'+item.data('content')), 
selectedDropdownHeight = selectedDropdown.innerHeight(), 
selectedDropdownWidth = selectedDropdown.children('.content').innerWidth(), 
selectedDropdownLeft = item.offset().left + item.innerWidth()/2 - selectedDropdownWidth/2; 
//update dropdown and dropdown background position and size 
this.updateDropdown(selectedDropdown, parseInt(selectedDropdownHeight), selectedDropdownWidth, parseInt(selectedDropdownLeft)); 
//add the .active class to the selected .dropdown and .is-dropdown-visible to the .cd-morph-dropdown 
//... 
}; 
morphDropdown.prototype.updateDropdown = function(dropdownItem, height, width, left) { 
this.dropdownList.css({ 
'-moz-transform': 'translateX(' + left + 'px)', 
'-webkit-transform': 'translateX(' + left + 'px)', 
'-ms-transform': 'translateX(' + left + 'px)', 
'-o-transform': 'translateX(' + left + 'px)', 
'transform': 'translateX(' + left + 'px)', 
'width': width+'px', 
'height': height+'px' 
}); 
this.dropdownBg.css({ 
'-moz-transform': 'scaleX(' + width + ') scaleY(' + height + ')', 
'-webkit-transform': 'scaleX(' + width + ') scaleY(' + height + ')', 
'-ms-transform': 'scaleX(' + width + ') scaleY(' + height + ')', 
'-o-transform': 'scaleX(' + width + ') scaleY(' + height + ')', 
'transform': 'scaleX(' + width + ') scaleY(' + height + ')' 
}); 
};

以上所述是小編給大家介紹的基于JS快速實(shí)現(xiàn)導(dǎo)航下拉菜單動(dòng)畫(huà)效果附源碼下載,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • JavaScript正則表達(dá)式驗(yàn)證登錄實(shí)例

    JavaScript正則表達(dá)式驗(yàn)證登錄實(shí)例

    這篇文章主要為大家詳細(xì)介紹了JavaScript正則表達(dá)式驗(yàn)證登錄實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • p5.js實(shí)現(xiàn)故宮橘貓賞秋圖動(dòng)畫(huà)

    p5.js實(shí)現(xiàn)故宮橘貓賞秋圖動(dòng)畫(huà)

    這篇文章主要為大家詳細(xì)介紹了p5.js實(shí)現(xiàn)故宮橘貓賞秋圖動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • JS實(shí)現(xiàn)的隨機(jī)排序功能算法示例

    JS實(shí)現(xiàn)的隨機(jī)排序功能算法示例

    這篇文章主要介紹了JS實(shí)現(xiàn)的隨機(jī)排序功能算法,結(jié)合具體實(shí)例形式分析了javascript常用的排序算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • js取整數(shù)、取余數(shù)的方法

    js取整數(shù)、取余數(shù)的方法

    這篇文章主要介紹了js取整數(shù)、取余數(shù)的方法,需要的朋友可以參考下
    2014-05-05
  • Bootstrap彈出框(Popover)被擠壓的問(wèn)題小結(jié)

    Bootstrap彈出框(Popover)被擠壓的問(wèn)題小結(jié)

    比較了下Bootstrap的popover和一些其它的開(kāi)源項(xiàng)目,覺(jué)得Bootstrap的還算不錯(cuò)。在使用過(guò)程中遇到了一系列問(wèn)題,下面小編給大家分享Bootstrap彈出框(Popover)被擠壓的問(wèn)題小結(jié),需要的朋友參考下吧
    2017-07-07
  • JS顯示表格內(nèi)指定行html代碼的方法

    JS顯示表格內(nèi)指定行html代碼的方法

    這篇文章主要介紹了JS顯示表格內(nèi)指定行html代碼的方法,涉及javascript獲取行及innerHTML屬性的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • JS獲取當(dāng)前時(shí)間戳方法解析

    JS獲取當(dāng)前時(shí)間戳方法解析

    這篇文章主要介紹了JS獲取當(dāng)前時(shí)間戳方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳解maxlength屬性在textarea里奇怪的表現(xiàn)

    詳解maxlength屬性在textarea里奇怪的表現(xiàn)

    這篇文章主要介紹了maxlength屬性在textarea里奇怪的表現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • javascript 關(guān)閉IE6、IE7

    javascript 關(guān)閉IE6、IE7

    通過(guò)javascript關(guān)閉瀏覽器的時(shí)候,“一般”會(huì)彈出系統(tǒng)的默認(rèn)提示框,提示用戶是否關(guān)閉瀏覽器,這可以通過(guò)javascript解決,但是IE6,IE7解決的辦法是不一樣的
    2009-06-06
  • JavaScript實(shí)現(xiàn)x秒后自動(dòng)跳轉(zhuǎn)到一個(gè)頁(yè)面

    JavaScript實(shí)現(xiàn)x秒后自動(dòng)跳轉(zhuǎn)到一個(gè)頁(yè)面

    今天看視頻學(xué)習(xí)時(shí)學(xué)習(xí)了一種新技術(shù),即平時(shí)我們?cè)谝粋€(gè)頁(yè)面點(diǎn)擊“提交”或“確認(rèn)”會(huì)自動(dòng)跳轉(zhuǎn)到一個(gè)頁(yè)面,在網(wǎng)上搜了一下,關(guān)于這個(gè)技術(shù)處理有多種方法,有興趣的朋友可以參考下
    2013-01-01

最新評(píng)論