在写项目中 用到下拉框,一般用

 <select name="" id="">
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>

但是select 在不同的浏览器中 样式有些差别,所以用 ul  li 来模拟select 的功能。

 <div class="model-select-box">
<div class="model-select-text" value=""> 请选择:</div>
<b class="bg1"></b>
<ul class="model-select-option">
<li data-option="" class="selected">查设备</li>
<li data-option="">查链路</li>
<li data-option="">查光缆</li>
</ul>
</div>
 $(function () {
/*
* 模拟网页中所有的下拉列表select
*/
function selectModel() {
var $box = $('div.model-select-box');
var $option = $('ul.model-select-option', $box);
var $txt = $('div.model-select-text', $box);
var speed = 10;
var $bg = $('b.bg1',$box) // 点击小三角
$bg.click(function(){
$option.not($(this).siblings('ul.model-select-option')).slideUp(speed, function () {
});
$(this).siblings('ul.model-select-option').slideToggle(speed, function () {
// int($(this));
});
return false;
})
/*
* 单击某个下拉列表时,显示当前下拉列表的下拉列表框
* 并隐藏页面中其他下拉列表
*/
$txt.click(function (e) {
$option.not($(this).siblings('ul.model-select-option')).slideUp(speed, function () {
});
$(this).siblings('ul.model-select-option').slideToggle(speed, function () {
// int($(this));
});
return false;
});
//点击选择,关闭其他下拉
/*
* 为每个下拉列表框中的选项设置默认选中标识 data-selected
* 点击下拉列表框中的选项时,将选项的 data-option 属性的属性值赋给下拉列表的 data-value 属性,并改变默认选中标识 data-selected
* 为选项添加 mouseover 事件
*/
$option.find('li').each(function(index,element){
// console.log($(this) + '1');
if($(this).hasClass('selected')){
$(this).parent('.model-select-option').siblings('.model-select-text').text($(this).text())
} $(this).mousedown(function(){
$(this).parent().siblings('div.model-select-text').text($(this).text())
.attr('value', $(this).attr('data-option'));
$option.slideUp(speed, function () {
});
$(this).addClass('selected').siblings('li').removeClass('selected');
return false;
}) $(this).on('mouseover',function(){
$(this).addClass('selected').siblings('li').removeClass('selected');
})
})
//点击文档,隐藏所有下拉
$(document).click(function (e) {
$option.slideUp(speed, function () {
});
}); } selectModel();
})
* {
margin:;
padding:;
} body {
font: 14px '微软雅黑';
color: #555;
padding: 50px;
} ul {
list-style: none;
} .model-select-box {
width: 100px;
height: 34px;
line-height: 34px;
border: 1px solid #000;
float: left;
margin-right: 20px;
text-indent: 5px;
position: relative;
font-size: 18px;
box-sizing: border-box
} .model-select-text {
height: 34px;
padding-right: 27px;
cursor: pointer;
/* -moz-user-select: none;
-webkit-user-select: none;
user-select: none; */
} .model-select-option {
display: none;
position: absolute;
background: #fff;
width: 100%;
left: -1px;
border: 1px solid #000;
} .model-select-option li {
height: 30px;
line-height: 30px;
color: #000;
cursor: pointer;
} .model-select-option li.selected {
background: #06C;
color: #fff;
} /* 小三角 */
.bg1{
position: absolute;
top:12px;
right:5px;
border-width: 6px;
border-style: solid;
border-color: #000 transparent transparent transparent;
}


ul -- li 模拟select下拉框的更多相关文章

  1. jquery实现模拟select下拉框效果

    <IGNORE_JS_OP style="WORD-WRAP: break-word"> <!DOCTYPE html PUBLIC "-//W3C// ...

  2. 用div,ul,input模拟select下拉框

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. jq插件又来了,模拟select下拉框,支持上下方向键哦

    好久没来了,更新下插件, 这个原理就是利用的 input[type='hidden']和自定义属性data-value捆绑传值操作的,可是设置默认选项,回调等参数,代码不多,比较简单,吼吼 (func ...

  4. div+css模拟select下拉框

    <!DOCTYPE html><html ><head lang="zh"> <meta http-equiv="Content ...

  5. 模拟select下拉框、复选框效果

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  6. [原创]HTML 用div模拟select下拉框

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML xmlns=" ...

  7. 联合县城市,采用ajax,而使用ul模拟select下拉

    接待处代码 js //采用jquery展示鼠标放到省ul下拉显示 $("#province").hover(function(){                          ...

  8. css配合js模拟的select下拉框

    css配合js模拟的select下拉框 <!doctype html> <html> <head> <meta charset="utf-8&quo ...

  9. 好看的Select下拉框是如何制造的

    现在在大多数网站中都能看到很华丽的Select下拉框,他们是如何实现的呢?使用默认select肯定是不好实现,我们可以使用div+js去模拟出来select的功能,并且又能很简单的去美化它. CSS代 ...

随机推荐

  1. nginx信号及平滑升级

    1.nginx信号 nginx进程处理命令: kill -signals PID PID即nginx进程ID signals的参数解释如下所示: TERM,INT快速关闭进程 QUIT优雅的关闭,如果 ...

  2. 【读书笔记】C/C++程序员面试秘籍

    第一章 C/C++ 程序基础(共12题) 第二章 预处理.const.static.和 sizeof(共27题) 第三章 引用和指针(共39题) 第四章 字符串(共31题) 第五章 位运算与嵌入式编程 ...

  3. Nginx配置PHP环境支持

    打开Nginx配置文件 输入 vim etc/nginx/nginx.conf 找到配置扩展文件: 打开配置文件配置如下环境: server { listen       80; server_nam ...

  4. Android中父View和子view的点击事件的执行过程

    Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解.  一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN- ...

  5. Minimum Snap轨迹规划详解(2)corridor与时间分配

    在上一篇文章中,我们得到的轨迹并不是很好,与路径差别有点大,我们期望规划出的轨迹跟路径大致重合,而且不希望有打结的现象,而且希望轨迹中的速度和加速度不超过最大限幅值.为了解决这些问题有两种思路: 思路 ...

  6. [SCOI2014]方伯伯的玉米田 题解(树状数组优化dp)

    Description 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美. 这排玉米一共有N株,它们的高度参差不齐. 方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感 ...

  7. 数据结构学习笔记——顺序数组1

    线性表最简单的刚开始就是顺序存储结构,我是看着郝斌的视频一点一点来的,严蔚敏的书只有算法,没有具体实现,此笔记是具体的实现 为什么数据结构有ADT呢,就是为了满足数据结构的泛性,可以在多种数据类型使用 ...

  8. “今日头条杯”首届湖北省大学程序设计竞赛--F. Flower Road

    题目链接:点这 github链接:(包含数据和代码,题解):点这 链接:https://www.nowcoder.com/acm/contest/104/E来源:牛客网 题目描述 (受限于评测机,此题 ...

  9. (9)centos7 安装与解压

    1.zip/unzip zip 新file 旧file或文件夹 # 把旧文件和文件夹压缩成新文件 -r是文件夹下所有文件 zip -r a.zip ./doc #压缩当前目录 doc下的所有文件变成 ...

  10. https://blog.csdn.net/rubbertree/article/details/88877262

    本文链接:https://blog.csdn.net/rubbertree/article/details/88877262 https://blog.csdn.net/mingtianhaiyouw ...