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 相关文章推荐
解决 FireFox 下[使用event很麻烦] 的问题.
Aug 22 Javascript
判断iframe是否加载完成的完美方法
Jan 07 Javascript
用Javascript来生成ftp脚本的小例子
Jul 03 Javascript
jquery操作select大全
Apr 25 Javascript
Javascript单例模式的介绍和实例
Oct 08 Javascript
Bootstrap Table的使用总结
Oct 08 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
Nov 25 Javascript
微信小程序 新建登录页并实现tabBar隐藏
Jun 13 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
vue router动态路由下让每个子路由都是独立组件的解决方案
Apr 24 Javascript
javascript异步编程的六种方式总结
May 17 Javascript
Element Card 卡片的具体使用
Jul 26 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
2006/10/09 PHP
php db类库进行数据库操作
2009/03/19 PHP
php获取后台Job管理的实现代码
2011/06/10 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
php实现微信公众号无限群发
2015/10/11 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
jquery tools 系列 scrollable学习
2009/09/06 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
js原型链原理看图说明
2012/07/07 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
详解python和matlab的优势与区别
2019/06/28 Python
基于python3的socket聊天编程
2020/02/17 Python
Python新手如何理解循环加载模块
2020/05/29 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
如何写一个自定义标签
2012/12/28 面试题
人事部主管岗位职责
2013/12/26 职场文书
园林毕业生自我鉴定范文
2013/12/29 职场文书
关于工资低的辞职信
2014/01/14 职场文书
工厂搬迁方案
2014/05/11 职场文书
绿色小区申报材料
2014/08/22 职场文书
争先创优公开承诺书
2014/08/30 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB