ul -- li 模拟select下拉框
在写项目中 用到下拉框,一般用
<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下拉框的更多相关文章
- jquery实现模拟select下拉框效果
<IGNORE_JS_OP style="WORD-WRAP: break-word"> <!DOCTYPE html PUBLIC "-//W3C// ...
- 用div,ul,input模拟select下拉框
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- jq插件又来了,模拟select下拉框,支持上下方向键哦
好久没来了,更新下插件, 这个原理就是利用的 input[type='hidden']和自定义属性data-value捆绑传值操作的,可是设置默认选项,回调等参数,代码不多,比较简单,吼吼 (func ...
- div+css模拟select下拉框
<!DOCTYPE html><html ><head lang="zh"> <meta http-equiv="Content ...
- 模拟select下拉框、复选框效果
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- [原创]HTML 用div模拟select下拉框
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML xmlns=" ...
- 联合县城市,采用ajax,而使用ul模拟select下拉
接待处代码 js //采用jquery展示鼠标放到省ul下拉显示 $("#province").hover(function(){ ...
- css配合js模拟的select下拉框
css配合js模拟的select下拉框 <!doctype html> <html> <head> <meta charset="utf-8&quo ...
- 好看的Select下拉框是如何制造的
现在在大多数网站中都能看到很华丽的Select下拉框,他们是如何实现的呢?使用默认select肯定是不好实现,我们可以使用div+js去模拟出来select的功能,并且又能很简单的去美化它. CSS代 ...
随机推荐
- KiCAD泪滴
KiCAD泪滴 KiCAD没有自带的补泪滴功能,必须先下载一个插件,然后才能进行泪滴操作 链接 提取码:ey8o 1.下载泪滴插件,解压后将整个文件夹复制到目录 C:\Program Files\K ...
- Qt Creator 无法解析的外部符号(转)
https://blog.csdn.net/yvhvv/article/details/8474356 一直报某个构造函数无法解析,但看了下代码中没有问题,后来把debug文件夹删掉,重新运行后问题解 ...
- macOS免费的NTFS读写软件
Mounty for Mac brew cask install mounty
- Java——类之间的关系
3.7 类之间的关系 3.7.1 泛化关系 类和类之间的继承关系及接口与接口之间的继承关系. 3.7.2 实现关系 类对接口的实现. 3.7.3 关联关系 类与类之间的连接,一个类可以知道另一个类的属 ...
- PHP FILTER_SANITIZE_SPECIAL_CHARS 过滤器
定义和用法 FILTER_SANITIZE_SPECIAL_CHARS 过滤器对特殊字符进行 HTML 转义. 该过滤器用于转义 "<>& 以及 ASCII 值在 32 ...
- 【Flutter学习】基本组件之图标组件Icon
一,概述 图标组件(Icon)为展示图标的组件,该组件不可交互,要实现可交互的图标,可以考虑使用IconButton组件. 图标组件相关的几个组件: IconButton:可交互的Icon: Icon ...
- 基于aop的日志记录方式实现
说明 最近有个项目需要增加日志记录功能,因为这个项目原来是基于spring开发的,在查阅了相关资料以后,我采用了spring aop的方式实现该需求,然后就有了本篇文章. 思路 我这边需求是这样的:要 ...
- python实现语音录入识别
一.介绍 1.第一步录音存入本地 2.调用百度语音识别sdk 注意点:百度语音识别对声音源有要求,比特率必须是256kbps 二.代码 #安装必要库 pip install baidu-aip #百度 ...
- [bzoj3073] Journeys 题解(线段树优化建图)
Description Seter建造了一个很大的星球,他准备建造N个国家和无数双向道路.N个国家很快建造好了,用1..N编号,但是他发现道路实在太多了,他要一条条建简直是不可能的!于是他以如下方式建 ...
- JEECG树(TreeGrid)字段的扩展
转载:https://blog.csdn.net/huangzirong822/article/details/38400817 之前使用jeecg集成框架做过一个项目 这里说说框架中树(tree)字 ...