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

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

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

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

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

效果演示         源碼下載

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樣式請參照源碼中的css/style.css文件。

Javascript

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

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元素上檢測鼠標(biāo)進(jìn)入和鼠標(biāo)離開事件。
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)畫效果附源碼下載,希望對(duì)大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • DOM 事件的深入淺出(一)

    DOM 事件的深入淺出(一)

    本文主要介紹了不同DOM級(jí)別下的事件處理程序,同時(shí)介紹了事件冒泡和捕獲的觸發(fā)原理和方法。熟練地使用不同級(jí)別的DOM事件并且解決相應(yīng)的瀏覽器兼容性問題對(duì)我們的前端項(xiàng)目開發(fā)會(huì)很有幫助。
    2016-12-12
  • javascript遍歷json對(duì)象的key和任意js對(duì)象屬性實(shí)例

    javascript遍歷json對(duì)象的key和任意js對(duì)象屬性實(shí)例

    下面小編就為大家?guī)硪黄猨avascript遍歷json對(duì)象的key和任意js對(duì)象屬性實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • 基于JavaScript實(shí)現(xiàn)網(wǎng)頁版羊了個(gè)羊游戲

    基于JavaScript實(shí)現(xiàn)網(wǎng)頁版羊了個(gè)羊游戲

    最近羊了個(gè)羊火的不得了,這篇文章主要為大家介紹了如何利用JS實(shí)現(xiàn)個(gè)網(wǎng)頁版羊了個(gè)羊游戲,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-09-09
  • npm qs模塊使用詳解

    npm qs模塊使用詳解

    這篇文章主要介紹了npm qs模塊使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • JavaScript設(shè)置名字輸入不合法的實(shí)現(xiàn)方法

    JavaScript設(shè)置名字輸入不合法的實(shí)現(xiàn)方法

    這篇文章主要介紹了JavaScript設(shè)置名字輸入不合法的方法,需要的朋友可以參考下
    2017-05-05
  • JS獲取和修改元素樣式的實(shí)例代碼

    JS獲取和修改元素樣式的實(shí)例代碼

    下面小編就為大家?guī)硪黄狫S獲取和修改元素樣式的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • js中的深淺拷貝問題簡析

    js中的深淺拷貝問題簡析

    這篇文章主要給大家介紹了關(guān)于js中的深淺拷貝問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • js實(shí)現(xiàn)簡單的貪吃蛇游戲

    js實(shí)現(xiàn)簡單的貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡單的貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 移動(dòng)端web滾動(dòng)分頁的實(shí)現(xiàn)方法

    移動(dòng)端web滾動(dòng)分頁的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了移動(dòng)端web滾動(dòng)分頁的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • js實(shí)現(xiàn)點(diǎn)擊鏈接后窗口縮小并居中的方法

    js實(shí)現(xiàn)點(diǎn)擊鏈接后窗口縮小并居中的方法

    這篇文章主要介紹了js實(shí)現(xiàn)點(diǎn)擊鏈接后窗口縮小并居中的方法,實(shí)例分析了javascript操作窗口的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03

最新評(píng)論

集安市| 涡阳县| 阜阳市| 房山区| 修文县| 牙克石市| 古浪县| 鲁山县| 鄂州市| 广灵县| 黎川县| 姜堰市| 鸡东县| 泰州市| 晋江市| 辽中县| 霍山县| 新疆| 修文县| 汝城县| 延吉市| 嘉荫县| 左贡县| 红安县| 奉化市| 正宁县| 永兴县| 轮台县| 台前县| 广河县| 霍林郭勒市| 德钦县| 武平县| 聂荣县| 阳泉市| 宁明县| 昌平区| 射阳县| 醴陵市| 荣昌县| 仙居县|