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和JQuery实用代码片段(一)
Apr 07 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
Apr 15 Javascript
dwz 如何去掉ajaxloading具体代码
May 22 Javascript
JS中类或对象的定义说明
Mar 10 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
js实现基于正则表达式的轻量提示插件
Aug 29 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
vue 标签属性数据绑定和拼接的实现方法
May 17 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
Nov 26 Javascript
JavaScript常用8种数组去重代码实例
Sep 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与MySQL交互使用详解
2006/10/09 PHP
php 常用字符串函数总结
2008/03/15 PHP
PHP开发负载均衡指南
2010/07/17 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
JavaScript window.location对象
2014/11/14 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
500行python代码实现飞机大战
2020/04/24 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
几个常见的消息中间件(MOM)
2014/01/08 面试题
怎样写好自荐信和推荐信
2013/12/26 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
新教师工作感言
2014/02/16 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
2016年国陪研修感言
2015/11/18 职场文书
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL