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

 <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. teb教程6

    代价地图的转换 简介:本部分关于怎样把代价地图转换插件应用到转换占据栅格costmap2d到几何形状来优化(测试阶段) teb_local_planner包支持costmap_converter插件, ...

  2. .NET WEB API 简单搭建

    首先是注释问题: 找到 跟目录下Areas/HelpPage/App_Start/HelpPageConfig.cs 加上代码就OK 了 还有在解决方案属性 点击生成  将XML文档文件勾上 API ...

  3. 【CSS】选择器优先级

    CSS的选择器优先级的权重 在 Selectors Level 3 规范中,一个选择器的优先级(权重)由依次串联的a.b.c三个标记来计算 a: ID选择器 如#header b: class选择器如 ...

  4. 笔记65 Spring Boot快速入门(五)

    SpringBoot+JPA 一.什么是JPA? JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期 ...

  5. java端拦截器判断客户的的请求是否是ajax请求

    java端拦截器判断客户的的请求是否是ajax请求 发表于 2014-08-22 23:38:08 普通请求与ajax请求的报文头不一样,通过如下 String requestType = reque ...

  6. 【JZOJ6431】【luoguP5658】【CSP-S2019】括号树

    description analysis 用栈维护一下树上路径未匹配的左括号,然后在树上找右括号匹配,设\(f[i]\)为\(i\)节点的贡献,\(g[i]\)是答案 为左括号可以直接继承父节点的信息 ...

  7. eclipse中server name选项变灰

    删除workspace中.metadata\.plugins\org.eclipse.core.runtime\.settings目录下 org.eclipse.wst.server.core.pre ...

  8. python 拆分字符串(3.0)

    拆分字符串 1. def my_split(s, ds): l = [s] for d in ds: res = [] list(map(lambda x: res.extend(x.split(d) ...

  9. 前台处理ajax:axios

    """ 1.安装axios cnpm install axios --save 2.src/main.js配置 // 允许ajax发送请求时附带cookie axios. ...

  10. git分布式版本控制系统权威指南学习笔记(五):git checkout

    文章目录 分离头指针 通过cat可以查看当前的分支 通过branch查看当前分支 checkout commitId(真正的