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 相关文章推荐
两个比较有用的Javascript工具函数代码
Feb 17 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
Aug 29 Javascript
js 事件截取enter按键页面提交事件示例代码
Mar 04 Javascript
js换图片效果可进行定时操作
Jun 09 Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 Javascript
有关json_decode乱码及NULL的问题
Oct 13 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
Sep 01 Javascript
js实现加载页面就自动触发超链接的示例
Aug 31 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
Jul 25 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
Aug 31 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
Apr 28 Javascript
原生js实现each方法实例代码详解
May 27 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
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
Python实现字典去除重复的方法示例
2017/07/31 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
wxPython实现分隔窗口
2019/11/19 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
自我鉴定总结
2014/03/24 职场文书
小学教师岗位职责
2015/04/02 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript