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高级程序设计(第3版)学习笔记5 js语句
Oct 11 Javascript
javascript面向对象特性代码实例
Jun 12 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
javascript实现tab切换的四种方法
Nov 05 Javascript
js date 格式化
Feb 15 Javascript
jquery实现超简单的瀑布流布局【推荐】
Mar 08 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
Sep 12 Javascript
js实现下拉框二级联动
Dec 04 Javascript
使用Promise封装小程序wx.request的实现方法
Nov 13 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
Mar 08 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
Oct 27 Javascript
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
Wordpress php 分页代码
2009/10/21 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
JavaScript prototype 使用介绍
2013/08/29 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
学习vue.js计算属性
2016/12/03 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
Node.js和Express简单入门介绍
2017/03/24 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
Python不规范的日期字符串处理类
2014/06/10 Python
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python 爬虫的工具列表大全
2016/01/31 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python优先队列实现方法示例
2017/09/21 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
蔬菜基地的创业计划书
2014/01/06 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
高中教师个人工作总结
2015/02/10 职场文书
幼儿园大班教学反思
2016/03/02 职场文书