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 事件流和事件绑定
Jul 16 Javascript
Mootools 1.2 手风琴(Accordion)教程
Sep 15 Javascript
JQuery打造PHP的AJAX表单提交实例
Nov 03 Javascript
jQuery 方法大全方便学习参考
Feb 25 Javascript
AJAX 网页保留浏览器前进后退等功能
Feb 12 Javascript
JavaScript中的异常捕捉介绍
Dec 31 Javascript
js实现带圆角的多级下拉菜单效果
Aug 28 Javascript
让你一句话理解闭包(简单易懂)
Jun 03 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
Aug 05 Javascript
vue实现数字滚动效果
Jun 29 Javascript
ant design的table组件实现全选功能以及自定义分页
Nov 17 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对象类型判断
2008/08/27 PHP
PHP5 面向对象(学习记录)
2009/12/02 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
javascript事件问题
2009/09/05 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
Python字符串及文本模式方法详解
2020/09/10 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
小班重阳节活动方案
2014/02/08 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS