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 对表格的行和列都能加亮显示
Dec 26 Javascript
调试代码导致IE出错的避免方法
Apr 04 Javascript
jQuery中contents()方法用法实例
Jan 08 Javascript
js实现顶部可折叠的菜单工具栏效果实例
May 09 Javascript
javascript中 try catch用法
Aug 16 Javascript
如何使用jquery实现文字上下滚动效果
Oct 12 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
Mar 04 Javascript
Nuxt配合Node在实际生产中的应用详解
Aug 07 Javascript
JS实现深度优先搜索求解两点间最短路径
Jan 17 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
Apr 20 Javascript
vuex存值与取值的实例
Nov 06 Javascript
vue 重塑数组之修改数组指定index的值操作
Aug 09 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 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
js中opener与parent的区别详细解析
2014/01/14 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
python实现最长公共子序列
2018/05/22 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
中学生评语大全
2014/04/18 职场文书
机械系毕业生求职信
2014/05/28 职场文书
学雷锋标语
2014/06/25 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python