成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

利用HTML 5中的Menu和Menuitem元素快速創(chuàng)建菜單

twohappy / 2390人閱讀

摘要:桌面應(yīng)用通常使用工具條菜單或者上下文菜單來展現(xiàn)各種任務(wù)。使用元素在一個容器中,元素用于創(chuàng)建上下文工具欄和彈出菜單。本地解決方案和一起使用,將把新的菜單合并到本地的上下文菜單。添加子菜單和圖標子菜單由一組相似或相互的菜單項組成。

原文:Introducing the HTML5 “Menu” and “Menuitem” Elements

譯文:HTML 5中Menu和Menuitem的元素介紹

譯者:dwqs

今天向你介紹HTML 5中的兩個元素:Menu和Menuitem,這兩個元素是W3C交互元素中的一部分?,F(xiàn)在Web的演變已經(jīng)不僅僅局限于文檔之間的鏈接,在APPs中,頁面的行為越來越多,因此,是時候形成一個Web交互的標準了。

Menu和Menuitem是在開發(fā)者中談?wù)撟顭衢T的兩個元素,可能是由于主流瀏覽器對其缺乏足夠的支持。在我寫這篇文章的時候,F(xiàn)ireFox已經(jīng)實現(xiàn)了這個元素。

Menu和Nav的對比

當(dāng)談到Menu時,難免不和Nav元素混淆。區(qū)分這兩個元素,文檔規(guī)范是一個不錯的工具。

Nav元素是HTML導(dǎo)航元素,代表著Web頁面的導(dǎo)航塊,一般包含一個links集合,允許用戶在頁面內(nèi)跳轉(zhuǎn)或者跳轉(zhuǎn)到其它網(wǎng)站頁面。

Menu是一系列菜單命令的集合,跟桌面或者手機應(yīng)用有點相似。桌面應(yīng)用通常使用工具條菜單或者上下文菜單來展現(xiàn)各種任務(wù)。Nav和Menu最根本的不同之處在于:Nav元素包含導(dǎo)航鏈接去幫助用戶在Web頁面之間跳轉(zhuǎn),而Menu應(yīng)該讓用戶執(zhí)行特定的任務(wù)。

使用Menu元素

在一個容器中,Menu元素用于創(chuàng)建上下文、工具欄和彈出菜單。然而,后面的兩個功能還沒有瀏覽器實現(xiàn),包括FireFox。此刻,很難去猜測瀏覽會怎么實現(xiàn)他們以及看起來會是什么樣子。不過對于toolbar和popup菜單的規(guī)范在下一代交互設(shè)計中做些改變也是一個不錯的機會。

對于現(xiàn)在,我們將集中注意力到上下文。

上下文

當(dāng)我們右擊一個應(yīng)用時,會出現(xiàn)一個上下文菜單。顯示的選項取決于用戶在哪里點擊。

JavaScript 選項

通過JavaScript和JQuery插件在Web頁面上添加上下文菜單是可以實現(xiàn)的。問題是這種方法需要額外的標記,并且腳本會刪除瀏覽器本地的菜單,如果處理不當(dāng),將會使用戶感到失望。

本地解決方案

Menu和Menuitem一起使用,將把新的菜單合并到本地的上下文菜單。例如,給body添加一個叫“Hello World”的菜單



    Hello World


在上述代碼片段中,包含的基本屬性有id,type和contextmenu—它指定了菜單類型是context,同時也指定了新的菜單項應(yīng)該被顯示的區(qū)域。

在示例中,當(dāng)右擊鼠標時,新的菜單項將出現(xiàn)在文檔的任何地方,因為我們指定它的作用區(qū)域是body。

當(dāng)然,你可以通過在特定的元素上給contextmenu賦值,例如div,main,section等等,來限制新菜單項的作用區(qū)域。


    
Hello World

當(dāng)在FireFox中查看時,會發(fā)現(xiàn)新添加的菜單項被添加到最頂部。

添加子菜單和圖標

子菜單由一組相似或相互的菜單項組成。PS中的Image Rotation就是一個典型的例子。使用Menu添加子菜單是非常容易和直觀的。查看下面的示例代碼:


    
        Rotate 90
        Rotate 180
        Flip Horizontally
        Flip Vertically
    

在支持Menu元素的瀏覽器中運行時,將看到新菜單中添加的四個子菜單:

圖標

介紹一個新的屬性:icon,使用這個屬性可以在菜單的旁邊添加圖標。值得一提的是,icon屬性只能在menuitem元素中使用。示例代碼:


    
        Rotate 90
        Rotate 180
        Flip Horizontally
        Flip Vertically
    

結(jié)果如你所見的:

在菜單中添加功能

我們已經(jīng)構(gòu)建了一些看起來像菜單的示例,但是是沒有任何功能都的。當(dāng)點擊菜單時,用戶期待一些事情發(fā)生。例如點擊Copy應(yīng)該要復(fù)制文本或鏈接,點擊New Folder應(yīng)該創(chuàng)建一個新的文件夾??梢杂肑avaScript實現(xiàn)這些功能。

注意:在開始之前,我建議你在JavaScript Fundamentals 看一看Jeremy McPeak’s的課程,對于任何想學(xué)習(xí)JavaScript的人都是一個不錯的開始。
利用上面的“Image Rotation”為例,讓我們添加一個當(dāng)點擊時旋轉(zhuǎn)圖像的功能。CSS 3的Transform and Transition可以在瀏覽器中為我們實現(xiàn)這個功能。將圖像旋轉(zhuǎn)90度的樣式如下:

.rotate-90 {
    transform: rotate(90deg);
}

為了使用這個樣式,需要寫一個函數(shù)將它應(yīng)用到圖像。

function imageRotation(name) {
    document.getElementById("image").className = name;
}

把這個函數(shù)和每一個menuitem的onclick屬性關(guān)聯(lián),并且傳遞一個參數(shù):rotate-90


    
        Rotate 90
        Rotate 180
        Flip Horizontally
        Flip Vertically
    

完成這個之后,再創(chuàng)建將圖片旋轉(zhuǎn)180度和裁剪圖片的樣式,將每一個函數(shù)添加到獨立的menuitem中,記得傳參數(shù) 。查看效果:in the demo page.

查看更多關(guān)于Menu元素的信息:Interactive Element: The Menu Element

查看我的示例:http://jsfiddle.net/Web_Code/15pc5zfv/1/embedded/result/

原文首發(fā):http://www.ido321.com/1293.html

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/49558.html

相關(guān)文章

  • 使用 Electron 自定義菜單

    摘要:使用自定義菜單此系列文章的應(yīng)用示例已發(fā)布于可以或下載后運行查看歡迎使用和模塊可用于創(chuàng)建自定義本地菜單有兩種菜單應(yīng)用程序頂部菜單和上下文右鍵單擊菜單在瀏覽器中打開完整的文檔創(chuàng)建應(yīng)用程序菜單支持進程使用和模塊可以自定義你的應(yīng)用程序菜單如果 使用 Electron 自定義菜單 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: electron-api-demos-Zh_CN. 可以 Clone ...

    MageekChiu 評論0 收藏0
  • 開發(fā)之路(設(shè)計模式十:迭代器模式上)

    摘要:感謝你看到這里,迭代器模式上部分到這里就結(jié)束了,本人文筆隨便,若有不足或錯誤之處望給予指點,度彎腰很快我會補全這個內(nèi)容,生命不息,編程不止參考書籍設(shè)計模式 有許多種方法可以把對象堆起來成為一個集合 好消息,當(dāng)?shù)氐牟蛷d和煎餅屋合并了,但是兩者實現(xiàn)的方式卻不同,這就造成了分歧。讓我們一起去看看把。showImg(https://segmentfault.com/img/bVV5sB?w=...

    Thanatos 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<