下拉菜单(键盘事件)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>下拉菜单</title>
<style type="text/css">
body,ul,li{ margin:0; padding:0; font-size:13px;}
ul,li{list-style:none;}
#divselect{width:186px; margin:80px auto; position:relative; z-index:10000;}
#divselect cite{width:150px; height:24px;line-height:24px; display:block; color:#807a62; cursor:pointer;font-style:normal;
padding-left:4px; padding-right:30px; border:1px solid #333333;
background:url(xjt.png) no-repeat right center;}
#divselect ul{width:184px;border:1px solid #333333; background-color:#ffffff; position:absolute; z-index:20000; margin-top:-1px; display:none;}
#divselect ul li{height:24px; line-height:24px;}
#divselect ul li a{display:block; height:24px; color:#333333; text-decoration:none; padding-left:10px; padding-right:10px;}
</style>
<script type="text/javascript">
window.onload=function(){
var box=document.getElementById(‘divselect‘),
title=box.getElementsByTagName(‘cite‘)[0],
menu=box.getElementsByTagName(‘ul‘)[0],
as=box.getElementsByTagName(‘a‘),
index=-1;

// 点击三角时
title.onclick=function(event){
// 执行脚本
event=event||window.event;
if (event.stopPropagation) {
event.stopPropagation();
}else{
event.cancelBubble=true;
}
menu.style.display=‘block‘;
}

//键盘事件
document.onkeyup=function(event){
event=event||window.event;
for(var i=0;i<as.length;i++){
as[i].style.background=‘none‘;
}
//向下
if(event.keyCode==40){
index++;
if(index>=as.length){
index=0;
}
as[index].style.background=‘#ccc‘;
}
//向上
if(event.keyCode==38){
index--;
if(index<0){
index=as.length-1;
}
as[index].style.background=‘#ccc‘;
}
//回车
if(event.keyCode==13){
title.innerHTML=as[index].innerHTML;
menu.style.display=‘none‘;
index=-1;
}

}

// 滑过滑过、离开、点击每个选项时
// 执行脚本
for(var i=0;i<as.length;i++){
as[i].onmouseover=function(){
this.style.background=‘#ccc‘;
}
as[i].onmouseout=function(){
this.style.background=‘none‘
}
as[i].onclick=function(){
title.innerHTML=this.innerHTML;
}
}

// 点击页面空白处时
// 执行脚本
document.onclick=function(){
menu.style.display=‘none‘;
}
}
</script>
</head>
<body>
<div id="divselect">
<cite>请选择分类</cite>
<ul>
<li id="li"><a href="javascript:;" selectid="1">ASP开发</a></li>
<li><a href="javascript:;" selectid="2">.NET开发</a></li>
<li><a href="javascript:;" selectid="3">PHP开发</a></li>
<li><a href="javascript:;" selectid="4">Javascript开发</a></li>
<li><a href="javascript:;" selectid="5">Java特效</a></li>
</ul>
</div>
</body>
</html>

时间: 2024-11-03 22:04:21

下拉菜单(键盘事件)的相关文章

js模拟下拉菜单-键盘、鼠标(代码详解)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

【JavaScript】利用onmousemove与onmouseout事件制作兼容IE6纯javascript无插件原生态的下拉菜单dropdown

下拉菜单dropdown在很多前端框架里面都有,直接拿来用就可以的,但是框架内的下拉菜单不好改,也很可能会有兼容性问题. 其实这东西完全可以利用HTML+CSS+Javascript去实现的. 效果如下: 其基本制作思想如下: 首先是HTML与CSS的布局,先布置一个table,这个table里面有两行,一行放下拉按钮,一行放下拉菜单,占据整个宽度的100%,单元格之间的行距为0. 因为共5个元素每列占20%. 这里不用div的float去布局,是因为这里使用table的话,这个下拉菜单组非常好

jquery 实现下拉菜单

Jquery 是一个轻量的框架,个人认为非常好用,今天就写一个非常简单的例子,实现下拉菜单功能: 首先肯定要在页面引用jquery.js  版本不限 : 接下来把=====================html贴出来: Html代码   <div class=”header_menu”> <ul> <li class=”menuli” id=”xtgl_menu”>系统管理</li> <li class=”menuli” id=”ggsq_menu”

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible处理方法:selenium针对下拉菜单事件的处理

使用Selenium爬虫时,可能会遇到一些下拉菜单,动态加载,如果直接使用find_element_by_函数会报错,显示selenium.common.exceptions.ElementNotVisibleException: Message: element not visible. 意思是element是不可见的.所以无法获取到.这时候就遇到一个难题,怎么把element变成可见的呢? 这时候,我们就用ActionChains来模拟效果 ActionChains(driver).clic

15-08-02 例子:下拉菜单(阻止事件冒泡函数)

做一个下拉菜单,当点击表单元素时显示下拉菜单,鼠标放到菜单元素上时改变元素背景色,将菜单中选中的值传到表单中,当点击表单及下拉菜单时外的其他地方时,下拉菜单消失. <title>下拉菜单</title> <style type="text/css"> * { margin:0px; padding:0px; } #pingmu { width:100%; height:100%; position:fixed; background-color:#F

JS实现下拉菜单效果

1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>下拉菜单</title> 6 <style type="text/css"> 7 body,ul,li{ 8 margin:0; 9 padding:0; 10 font-size:13px; 11 } 1

jQuery美化下拉菜单插件dropkick

dropkick是一款基于jquery库的美化下拉框下拉菜单的插件,它通过定制HTML插入可使丑陋无聊的<select>下拉列表变得美丽. name属性是唯一一个必需的填写的,不过你也应该设定一个tabindex属性来设定导航菜单的排序. 在dropkick选择一个选项时,亦会触发事件,这意味着您的表单.AJAX工作和传统的一样,无需进行任何更改. 如本款不合适,请看下本站另一款jQuery下拉框能扩展和美化插件Chosen 特点 1.像一个下拉框一样工作 2.支持键盘:可通回车,上下方向健来

编程挑战--下拉菜单

最近有一个叫慕客网的学习平台,现在很火.课程后面一般都会留有一道小题目,用来检测小伙伴们的学习结果.我看到有一个课程还不错,后面也跟了很多回复,不过感觉代码质量都不高,这可能和课程定位有关,如果你有信心写的更好,不妨来挑战一下.有兴趣的同学可以参考下面的链接: 课程地址:http://www.imooc.com/code/3631 我把题目要求再贴一下: 编程挑战 小伙伴们,根据所学知识,实现下图所示的菜单效果,实现点击菜单中的向下三角展开菜单,点击页面空白处收起菜单,按下键盘上的向上.向下方向

HTML+JS+CSS 实现下拉菜单

最近在看视频学习做一些HTML+JS+CSS的实例,第一个是实现下拉菜单. 5.7 制作的思路是:1.静态网页的制作 2.动态特效实现菜单的显示和隐藏(三种方法:css.JavaScript.jQuery) 3.浏览器的兼容问题(低版本IE可能不支持等) 在用css实现时,由于盒子模型有自己默认的margin和padding值,所以要reset. 有一点比较有疑问的实,老师在视频里说position:absolute要和left.top同时使用.这是为什么?在实现的时候,我并没有使用left和t