鼠标经过显示下拉选择下拉
来源:互联网 发布:淘宝手机页面设为首页 编辑:程序博客网 时间:2024/05/17 23:20
这个可以在css通过
<div class=" left-height select-type-relative">
<div class="select-type-content">
<div class="select-type">
<span>所属类型</span>
<img src="images/icon/three.png" alt="" class="arrow"/>
</div>
<input name="type" value="" type="hidden" id="type">
<ul class="select-type-absolute">
<li data-value="0">官方</li>
<li data-value="1">非官方</li>
</ul>
</div>
</div>
.select-type-relative{
position:relative;
}
.select-type {
margin-right: 10px;
cursor: pointer;
height: 34px;
line-height: 34px;
border-radius: 4px;
width: 120px;
padding-left: 20px;
border: 1px solid #dadada;
color: #7c7e7f;
box-sizing: border-box;
font-size:14px;
background-color: #fff;
}
.select-type-content:hover .select-type{background: #ebf1fa;}
.select-type-content:hover .select-type .arrow{ //鼠标滑过让这个箭头图标旋转180度
transform: rotate(180deg);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
}
/*下拉框*/
.select-type-absolute{
position: absolute;
background: #fff;
border: 1px solid #dadada;
border-radius: 4px;
left:0px;
top: 40px;
display: none;
z-index: 222;
}
.select-type-absolute li {
width: 120px;
height: 34px;
line-height: 34px;
padding-left: 25px;
cursor: pointer;
}
.select-type-absolute li:hover {
background: #ebf1fa;
}
.show{display:block;}
.hide{display:none;}
选择一个后效果:
考虑鼠标滑过所属类型,下面的下拉框官方和非官方显示。鼠标移动到下面下拉框上面后下拉框一直是显示的状态。选择内容后下拉框隐藏。
最开始的思路:通过鼠标滑过,他之内的某个子元素可以再css里面设置显示或者隐藏。
下拉内容开始是隐藏的,只有滑过上面内容才显示,划出时看到是否在下拉上,在下拉上就显示,不在就隐藏。
.select-type-absolute{display:none;}
select-type-content:hover .select-type-absolute{display:block;}
鼠标移到下拉内容上它是显示的,移出就隐藏。
.select-type-absolute:hover{display:block;}
但是这样写完以后你会发现 可能会有问题:下拉框和上面内容有距离,一旦离开上面的“所属类型”,他就隐藏了,而此时你也不在下拉上所以还是同样隐藏。你要么让下拉内容和上面没有一点点距离的。 要么把上面的那个高度增加
.select-type-content {
height: 54px;
}
这样即使看起来有距离但实际没有的,select-type-content高度增加他即使在外面也没有移出select-type-content的范围的。
但是你选择下拉内容时,选好后就隐藏下拉,这时就会有问题了。
$(".select-type-absolute li").click(function(){
$(this).parent(".select-type-absolute").siblings(".select-type").find("span").html($(this).text()); //获取选择的内容
$(this).parent(".select-type-absolute").addClass("hide"); //隐藏下拉框
问题就在上面画删除线的地方,我们在css里面写的你鼠标在这个.select-type-absolute下拉框上面就会显示下拉内容的,你这里选择下拉后还是在上面所以他会是显示的。可是你在js里面希望他隐藏就冲突了,他还是会显示。直到你移出了下拉。而且你一旦点击选择某个下拉后你再去经过这个内容他的下拉就一直处在隐藏的状态不能重新选择了。
})
所以我们只能用js来写了他的鼠标进入移出时的显示隐藏状态了
//鼠标滑过所属类型
$(".select-type-content").hover(function(){
$(this).find(".select-type-absolute").addClass("show").removeClass("hide");
},function(){
$(this).find(".select-type-absolute").addClass("hide").removeClass("show");
});
// 下拉选择内容
$(".select-type-absolute li").click(function(){
$(this).parent(".select-type-absolute").siblings("input").val($(this).attr("data-value"));
$(this).parent(".select-type-absolute").siblings(".select-type").find("span").html($(this).text());
$(this).parent(".select-type-absolute").removeClass("show").addClass("hide");
})
- 鼠标经过显示下拉选择下拉
- js-鼠标经过显示下拉菜单
- 下拉框-鼠标经过时出现下拉框
- 如何用CSS制作横向菜单 ,鼠标经过变色 并显示下拉菜单...
- bootstrap 导航改成经过显示下拉菜单
- 蜗牛—JavaScript学习之鼠标经过下拉菜单
- 鼠标移上去显示一个下拉,移开下拉隐藏
- 下拉框鼠标悬停显示内容
- 下拉+选择
- 鼠标经过显示文字
- 鼠标经过显示层
- 鼠标经过显示图片
- 鼠标经过显示DIV
- 鼠标经过显示文本
- 关于select下拉框最后一项鼠标经过不能变色及设置宽度后下拉框无法滚动的bug?
- 根据选择下拉框选择省份动态显示城市
- 鼠标悬停下拉菜单
- JQuery实现鼠标滑过显示下拉列表
- 热更新之生成文件md5
- 线程通信
- TP5 where多条件查询
- Elastic Search快速上手(2):将数据存入ES
- bzoj4145 [AMPPZ2014]The Prices (状压DP)
- 鼠标经过显示下拉选择下拉
- Java调用C++动态库具体实现
- Elastic Search快速上手(3):搜索
- CSS、HTMl使用position: fixed;实现div的高度填满剩余空间
- c和c++总结
- CCF之打酱油
- hi3716m v310怎么进行网络配置?
- centos7 yum安装mysql
- SEO多域名收录解决办法