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

基于JS快速實現(xiàn)導航下拉菜單動畫效果附源碼下載

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

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

快速的導航下拉菜單動畫效果如下所示:

效果演示         源碼下載

HTML

該導航菜單的HTML結構如下:

<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

為了實現(xiàn)這個導航菜單,特效中創(chuàng)建了一個morphDropdown對象。并使用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元素上檢測鼠標進入和鼠標離開事件。
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快速實現(xiàn)導航下拉菜單動畫效果附源碼下載,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

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

    DOM 事件的深入淺出(一)

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

    javascript遍歷json對象的key和任意js對象屬性實例

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

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

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

    npm qs模塊使用詳解

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

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

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

    JS獲取和修改元素樣式的實例代碼

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

    js中的深淺拷貝問題簡析

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

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

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

    移動端web滾動分頁的實現(xiàn)方法

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

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

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

最新評論

来安县| 三明市| 临沂市| 贵南县| 乳源| 孙吴县| 洛隆县| 抚宁县| 依兰县| 辽中县| 临安市| 松溪县| 永泰县| 利辛县| 开鲁县| 饶河县| 曲沃县| 岳普湖县| 赤城县| 宜良县| 永修县| 抚宁县| 大邑县| 余江县| 乌兰浩特市| 特克斯县| 镇平县| 渑池县| 丹寨县| 车致| 眉山市| 晋州市| 墨竹工卡县| 衡阳市| 大方县| 邛崃市| 朝阳县| 无极县| 广平县| 临潭县| 固阳县|