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 相关文章推荐
js比较和逻辑运算符的介绍
Mar 10 Javascript
js判断60秒以及倒计时示例代码
Jan 24 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
May 07 Javascript
jquery-tips悬浮提示插件分享
Jul 31 Javascript
javascript类型系统 Window对象学习笔记
Jan 07 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 Javascript
Java  Spring 事务回滚详解
Oct 17 Javascript
基于JavaScript实现右键菜单和拖拽功能
Nov 28 Javascript
vue实现页面加载动画效果
Sep 19 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
微信小程序实现复选框效果
Dec 28 Javascript
Vue如何使用混合Mixins和插件开发详解
Feb 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
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
提高PHP编程效率的方法
2013/11/07 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
水务局局长岗位职责
2013/11/28 职场文书
会计自荐书
2013/12/02 职场文书
档案接收函
2014/01/13 职场文书
幼儿园门卫制度
2014/01/29 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
琅琊山导游词
2015/02/05 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
运动会通讯稿300字
2015/07/20 职场文书
python单元测试之pytest的使用
2021/06/07 Python
js判断两个数组相等的5种方法
2022/05/06 Javascript