多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > web前端 > jscript > JavaScript自定義多級(jí)聯(lián)動(dòng)浮動(dòng)菜單[一]

JavaScript自定義多級(jí)聯(lián)動(dòng)浮動(dòng)菜單[一]

來(lái)源:程序員人生   發(fā)布時(shí)間:2013-10-26 11:29:17 閱讀次數(shù):3616次

  網(wǎng)教程 類似的多級(jí)浮動(dòng)菜單網(wǎng)上也很多實(shí)例,但大部分都是只針對(duì)一種情況或不夠靈活,簡(jiǎn)單說(shuō)就是做死了的。所以我就想到做一個(gè)能夠自定義菜單的,有更多功能的多級(jí)浮動(dòng)菜單。而其中的關(guān)鍵就是怎么根據(jù)自定義的菜單結(jié)構(gòu)來(lái)生成新菜單,關(guān)鍵中的難點(diǎn)就是怎么得到下級(jí)菜單結(jié)構(gòu)和容器對(duì)象的使用。

  理想的做法是每次有下級(jí)菜單時(shí),從對(duì)象直接取得下級(jí)菜單結(jié)構(gòu),放到容器對(duì)象中,并且容器能重用,而不是每次都重新生成。但想了很久也想不到適合的做法,直到做了多級(jí)聯(lián)動(dòng)下拉菜單終于得到了靈感。放棄了直接取得下級(jí)菜單結(jié)構(gòu),而是每次都從原來(lái)的菜單結(jié)構(gòu)中獲取當(dāng)前需要的下級(jí)菜單結(jié)構(gòu)。容器對(duì)象也不是自動(dòng)生成,而是由用戶先定義好(后來(lái)也做到能自動(dòng)生成了)。

  先來(lái)看一下演示:


提示:可修改后代碼再運(yùn)行!

  放下了這些包袱后,后面的開發(fā)就順暢了。

  特點(diǎn):
  1.根據(jù)自定義菜單結(jié)構(gòu)生成菜單;
  2.多級(jí)聯(lián)動(dòng)功能;
  3.自定義浮動(dòng)位置(上下左右);
  4.自定義延遲效果;
  5.js控制編輯菜單;
  6.可根據(jù)需要自動(dòng)生產(chǎn)容器對(duì)象

  程序原理

  程序是根據(jù)傳統(tǒng)浮動(dòng)菜單擴(kuò)展而來(lái),這里說(shuō)一下幾個(gè)比較關(guān)鍵或有用的地方:

  【延時(shí)功能】

  這個(gè)很多人都懂,就是設(shè)個(gè)setTimeout計(jì)時(shí)器,這里有兩個(gè)計(jì)時(shí)器,分別是容器計(jì)時(shí)器和菜單計(jì)時(shí)器。容器計(jì)時(shí)器的作用是鼠標(biāo)移到容器外面時(shí)隱藏容器,難點(diǎn)是如何判斷當(dāng)前鼠標(biāo)是不是在容器外面。一般的方法是設(shè)個(gè)bool參數(shù),mouseout時(shí)設(shè)為false,mouseover時(shí)設(shè)為true(or倒過(guò)來(lái)),再根據(jù)這個(gè)參數(shù)判斷,但這個(gè)方法在這個(gè)不行,經(jīng)過(guò)容器里的菜單對(duì)象時(shí)會(huì)觸發(fā)容器mouseout,由于事件冒泡,菜單對(duì)象的mouseout也會(huì)觸發(fā)容器的mouseout。

  <div style="height:100px; width:100px; background:#000000;" onmouseout="alert(2)">
<div style="height:50px; width:50px; background:#FF0000;" onmouseout="alert(1)">
</div>
</div>

  這里推薦一個(gè)方法,使用contains(ff是compareDocumentPosition)方法。
  這個(gè)方法是我做圖片滑動(dòng)展示效果時(shí)muxrwc教我的。

  var isIn = false, oT = Event(e).relatedTarget;
Each(oThis.Container, function(o, i){ if(o.contains ? o.contains(oT) || o == oT : o.compareDocumentPosition(oT) & 16){ isIn = true; } });

  詳細(xì)參考仿LightBox內(nèi)容顯示效果,而菜單計(jì)時(shí)器就沒(méi)什么特別,就是用來(lái)設(shè)置菜單內(nèi)容。

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 伊人情人综合成人久久网小说 | 一级做a爰片性色毛片2021 | 精品国产综合区久久久久久 | 国产jiyzz视频在线看 | 一区二区三区欧美日韩国产 | free性欧美18一19hd | 91四虎国自产在线播放线 | 999毛片免费 | 日韩欧美国产成人 | 三级理论中文字幕在线播放 | 久久精品23 | 亚洲图片日韩 | 国产一区二区网站 | 久久一 | 国产精品久久免费 | 亚洲国产精品久久精品成人 | 亚洲天堂视频网 | 欧美日韩免费一区二区三区 | 日韩亚洲国产欧美精品 | 欧美黄区 | 性xxxx奶大欧美高清 | 亚洲国产成人麻豆精品 | 国产情精品嫩草影院88av | 久久精品国产欧美日韩亚洲 | 一级做片爱性视频免费 | 日韩亚色 | 成人亚欧网站在线观看 | 欧美性生交大片 | 91在线视频福利 | 亚洲精品高清视频 | 国产极品美乳尤物在线观看 | 国产欧美在线不卡 | 国产欧美一区二区另类精品 | 欧美freesex呦交6_10 | 91精品国产欧美一区二区 | 亚洲人网| 亚洲一区二区成人 | free性欧美精品videos | 性欧美17一18sex性高清 | 久久91精品国产91久 | 精品无码久久久久国产 |