js+CSS实现模拟华丽的select控件下拉菜单效果


Posted in Javascript onSeptember 01, 2015

本文实例讲述了js+CSS实现模拟select控件的下拉菜单效果。分享给大家供大家参考。具体如下:

这是一个JS+CSS技术实现的Select控件效果,模拟出来的,比默认的Select更漂亮,有了这个模板,你修改Select就更方便了,由此你也可以将其制作成CSS下拉菜单,在兼容性方面暂未测试,在IE8下没问题。

运行效果截图如下:

js+CSS实现模拟华丽的select控件下拉菜单效果

在线演示地址如下:

具体代码如下:

<!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-Type" content="text/html; charset=utf-8" />
<title>模拟select控件</title>
<style> 
html,body{height:100%;overflow:hidden;}
body,div,form,h2,ul,li{margin:0;padding:0;}
ul{list-style-type:none;}
body{background:#23384e;font:12px/1.5 \5fae\8f6f\96c5\9ed1;}
#search,#search form,#search .box,#search .select,#search a{background:url(images/search.jpg) no-repeat;}
#search,#search .box,#search form{height:34px;}
#search{position:relative;width:350px;margin:10px auto;}
#search .box{background-position:right 0;}
#search form{background-repeat:repeat-x;background-position:0 -34px;margin:0 20px 0 40px;}
#search .select{float:left;color:#fff;width:190px;height:22px;cursor:pointer;margin-top:4px;line-height:22px;padding-left:10px;background-position:0 -68px;}
#search a{float:left;width:80px;height:24px;color:#333;letter-spacing:4px;line-height:22px;text-align:center;text-decoration:none;background-position:0 -90px;margin:4px 0 0 10px;}
#search a:hover{color:#f60;background-position:-80px -90px;}
#search .sub{position:absolute;top:26px;left:40px;color:#fff;width:198px;background:#2b2b2b;border:1px solid #fff;display:none;}
#search .sub li{height:25px;line-height:24px;cursor:pointer;padding-left:10px;margin-bottom:-1px;border-bottom:1px dotted #fff;}
#search .sub li.hover{background:#8b8b8b;}
</style>
<script type="text/javascript"> 
window.onload = function ()
{
 var oSelect = document.getElementsByTagName("span")[0];
 var oSub = document.getElementsByTagName("ul")[0];
 var aLi = oSub.getElementsByTagName("li");
 var i = 0;
 oSelect.onclick = function (event)
 {
  var style = oSub.style;
  style.display = style.display == "block" ? "none" : "block";
  //阻止事件冒泡
  (event || window.event).cancelBubble = true
 };
 for (i = 0; i < aLi.length; i++)
 {
  //鼠标划过
  aLi[i].onmouseover = function ()
  {
   this.className = "hover"
  };
  //鼠标离开
  aLi[i].onmouseout = function ()
  {
   this.className = "";
  };
  //鼠标点击
  aLi[i].onclick = function ()
  {
   oSelect.innerHTML = this.innerHTML 
  }
 }
 document.onclick = function ()
 {
  oSub.style.display = "none"; 
 };
};
</script>
</head>
<body>
<div id="search">
 <div class="box">
 <form>
  <span class="select">请选择游戏名称</span> 
  <a href="javascript:;">搜索</a>
 </form>
 </div>
 <ul class="sub">
 <li>地下城与勇士</li>
 <li>魔兽世界(国服)</li>
 <li>魔兽世界(台服)</li>
 <li>热血江湖</li>
 <li>大话西游II</li>
 <li>QQ幻想世界</li>
 </ul>
</div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
自动更新作用
Oct 08 Javascript
js left,right,mid函数
Jun 10 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
js日期、星座的级联显示代码
Jan 23 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
Feb 21 Javascript
理解JavaScript原型链
Oct 25 Javascript
webpack学习--webpack经典7分钟入门教程
Jun 28 Javascript
vuejs router history 配置到iis的方法
Sep 20 Javascript
详解VS Code使用之Vue工程配置format代码格式化
Mar 20 Javascript
解决Vue动态加载本地图片问题
Oct 09 Javascript
Javascript设计模式之原型模式详细
Oct 05 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 #Javascript
js实现简洁大方的二级下拉菜单效果代码
Sep 01 #Javascript
js实现点击向下展开的下拉菜单效果代码
Sep 01 #Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
Sep 01 #Javascript
js实现具有高亮显示效果的多级菜单代码
Sep 01 #Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 #Javascript
JS实现黑客帝国文字下落效果
Sep 01 #Javascript
You might like
各种咖啡的英文名子是什么
2021/03/03 新手入门
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP递归算法的简单实例
2019/02/28 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
如何用Python绘制3D柱形图
2020/09/16 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
移动通信专业自荐信范文
2013/11/12 职场文书
酒店总经理欢迎词
2014/01/08 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
校园文化标语
2014/06/18 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
人与自然的观后感
2015/06/18 职场文书
2015年征兵工作总结
2015/07/23 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
财务年终工作总结大全
2019/06/20 职场文书
python自动化测试之Selenium详解
2022/03/13 Python