js下拉菜单实现与可访问性的思考

一、俗耐的开篇语

关于下拉菜单的可用性问题,我之前一直都是忽略的,可以说是不知道,常常仅仅止步于眼前的效果上。前段时间看到了Roger的”Accessing Nav Drop-Downs“一文,就是讲了下下拉菜单的可用性问题。同时,巧的是,最近在看淘宝UED翻译的《ppk谈JavaScript》一书,其多次提到了可访问性的问题,尤其在p28~p37对JavaScript及其一些可用性问题发表了自己的看法。其中主要的观点和注意事项与Roger的文章是一致的。

这些阅读的经历让我意识到自己长时间忽略下拉菜单的可访问性,于是开始结合实际情况,思考自己以后需要注意和提高的地方。这让我对下拉菜单实现方式选择、标签的使用等有了更加明确的认识。不太成熟的思考,仅用于交流。再具体讲述下拉菜单的可访问性之前,先简单说说下拉菜单以及下拉菜单的实现吧。

二、关于下拉菜单及其实现

百度百科对“下拉菜单”一词的解释是:以条形菜单栏和菜单栏中每个菜单项的弹出菜单窗口两部分组成,一般作为应用系统的主菜单使用。

不过这段话就像《盗梦空间》一样,让人很难懂。通俗点讲,就是“经过/会点击就会显示列表的菜单”就叫做下拉菜单。在web上非常之常见,例如~~我随便打开个页面,啊,就像是我浏览器现在显示的百科的页面的右上角:

或是隔壁的微博页面,啊,果然,看左上角的广场下拉:

恩恩,看来下拉菜单就像是男人一样,满地都是。就不一一举例了,关于下拉菜单的实现,那方法可就多了,class切换,属性绑定,js定位等,不同的页面,不同的设计,不同的架构,就有不同的实现方法。由于每个项目,每个页面的情况都不一样,所以,不能轻易的下结论,你是大熊猫,是国宝,它是小野猫,是杂草。但是,就可用性而言,不同的方法优劣还是有标准来评判的,这个在后面会自然而然的展示。

现在,举个切换class实现下拉效果的简单例子,实例菜单原型来自Mtime时光网,//zxx:Mtime创始人在新浪微博上很活跃,你有兴趣可以follow他, @马日拉,你有没有觉得这个名字很有遐想的空间呢?,截图如下:

此导航下拉的每个下拉内容都已经通过CSS定位好了,但是,考虑到加载的原因,其下拉内容默认是未装载的。也就是说,是鼠标移至导航内容上,才动态load下拉div并嵌入导航li标签内的,如下图所示:

当然,作为静态demo页面,没有必要动态load下拉内容,所以,demo页面的下拉div默认就是隐藏且装载好的,于是,我们就可以通过简单的class切换实现下拉效果。

首先是HTML结构,见下图:

时间: 2025-01-20 18:09:16

js下拉菜单实现与可访问性的思考的相关文章

JS下拉菜单,如何把mouseover变成mouseclick事件

问题描述 JS下拉菜单,如何把mouseover变成mouseclick事件 function initMenu() { assembleMenu(document.getElementById("navigation")); } function assembleMenu(uLParentNode) { var theUL = uLParentNode.getElementsByTagName("ul")[0]; //在取得id为navigation的元素后,通过

30多个CSS和JS下拉菜单资源

导航菜单是网站设计中最重要的 因素之一.网络开发人员可以使用CSS创建方便用户的横向或纵向导航菜单, 而JavaScript则使人们有可能创造更多的互动,更多的响应和更灵活的导航到任何网站.Noupe在这篇文章里面提出了25个以上(横向和纵向)多 层次的下拉菜单,包括使用了JavaScript和CSS ,你可以将这些示例和教程用你的未来网站设计计划.帕兰照常为你翻译, 你也可以查看帕兰映像之前发表的一些关于菜单应用的文章: IzzyMenu: 在线创建DHTML/CSS菜单 9款CSS菜单生成器

ext-Ext Js 下拉菜单显示不正常

问题描述 Ext Js 下拉菜单显示不正常 求Ext大神帮忙

js 下拉菜单

提示:您可以先修改部分代码再运行 js 下拉菜单 Home Single Level Dropdown Dropline Flyout Support Contact 提示:您可以先修改部分代码再运行

js下拉菜单源代码

js下拉菜单源代码,js下拉菜单和js下拉菜单源代码以及js横向下拉菜单还有js 二级下拉菜单 等功能的原理都是差不多的. 想要做XMLHTTP+JavaScript的多级联动菜单,onChange出现问题 <Script language="javascript"> function GetResult(id,str) {     var oBao = new ActiveXObject("Microsoft.XMLHTTP");     oBao.o

js下拉菜单样式代码

提示:您可以先修改部分代码再运行 js下拉菜单样式代码 Home Single Level Dropdown Dropdown one Dropdown 1.1 Dropdown 1.2 Dropdown 1.3 Dropdown 1.4 Dropdown 1.5 Dropdown 1.6 Dropdown two Dropdown 2.1 Dropdown 2.2 Dropdown 2.3 Dropdown 2.4 Dropdown 2.5 Dropdown three Dropdown fo

js下拉菜单中自动信息轮换播放_表单特效

要完成此效果把如下代码加入到<body>区域中 Welcome To Typhoon Start. JavaScript Fairyland. _www.jb51.net. 我只是提出这种思路,其它要靠自己发挥喽. [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

js下拉菜单代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-

js 下拉菜单实现代码_javascript技巧

首页 首页1 首页2 首页3 首页4 首页4 电影 电影1 电影2 电影3 电影4 电影4 新闻 新片 排行榜 dcxsssssssss