用:hover伪类代替js的hover事件
制作二级菜单要实现鼠标移动上去显示子菜单,鼠标移出子菜单隐藏,或者其他类似需求的地方,首先我会想到用jquery的hover事件来实现,如:
$(".nav").hover(function(){
$("sub-nav").addClass("show");
},
function(){
$("sub-nav").removeClass("show");
});
第一个function实现鼠标移上去的样式,第二个function实现鼠标移开的样式,于是就实现了简单的下拉菜单功能。
之前一直这样做没有任何问题,然而直到昨天遇到一个问题:元素已经有click事件实现此功能时,再用hover事件实现一样的功能,hover就会影响click事件,并去掉点击事件的功能。举个例子:
一个导航,为当前点击的导航添加current样式,然后要实现鼠标移动到的当前元素也添加current事件,这时再用hover事件,通过点击添加的current样式会被hover事件影响,并且再次点击添加样式无效。
:hover伪类
纠结了半天,请教了一下同事,同事说没有必要用hover事件啊,用伪类一下就解决了,于是在她的指导下豁然开朗。
.nav li.current,.nav li:hover{
//css code
}
current是当前需要的样式,然后利用:hover与current共用一个样式,简单的一个思路的转换就能解决问题了。同理,菜单显示问题:
.nav:hover .sub-nav{
display:block;
}
总结:有时候需要转换一下思维,找到实现问题最简单的方法,而不是一直纠结在问题中。
用:hover伪类代替js的hover事件的更多相关文章
- css hover伪类选择器与JQuery hover()方法
css hover伪类选择器 它属于anchor伪类 在支持 CSS 的浏览器中,<a>标签链接的不同状态都可以以不同的方式显示,常常用来改链接的颜色效果 实例 a:link {color ...
- CSS :hover伪类选择定义和用法
伪类选择符E:hover的定义和用法: 设置元素在其鼠标悬停时的样式.E元素可以通过其他选择器进行选择,比如使用类选择符.id选择符.类型选择符等等.特别说明:IE6并非不支持此选择符,但能够支持a元 ...
- CSS中2d转换:transition过渡放在:hover伪类中与应用在整个元素中区别
css的2d转换十分强大,能够在不使用js的情况下,实现页面的元素与用户之间更多动态的交互,增强用户体验.其中使用最多的就是hover伪类. 1.创建一个页面的div元素: <!DOCTYPE ...
- 利用CSS hover伪类改变其他元素的总结
:hover 伪类经常用于页面的一些鼠标交互.链接点击变化,增强页面的用户体验,但是可以用来改变其他元素样式,可以在不使用JS 的情况下,达到想要的页面效果. 1.hover改变自身的效果: 鼠标悬浮 ...
- 【笔记】css hover 伪类控制其他元素
最近在模仿一个网站的项目 当中有一个效果需要利用到hover效果因为不太想写jq脚本所以百度了一下css hover的运用发现原来hover也可以控制其他元素的变化的 但是这有一个要求 就是添加hov ...
- CSS快速入门-鼠标悬浮(hover伪类)
一.概述 hover伪类:在鼠标移到元素上时向此元素添加特殊的样式.比较普通的就是一个url,当你鼠标放上去后,会变颜色. 在现实的应用场景也非常之多.最常见的是网站的悬浮导航,当鼠标放到导航条上时, ...
- css -- hover伪类
CSS代码: .btn-setDefaultGateway{display: none;} .netDiv:hover span .btn-setDefaultGateway { display: i ...
- a:hover伪类在ios移动端浏览器内无效的解决方法
a:hover 设置的样式在ios系统的浏览器内显示不出来,看来在iOS系统的移动设备中,需要在按钮元素或body/html上绑定一个touchstart事件才能激活:active状态. 方法 一: ...
- css:hover伪类的使用
:hover的使用,即当鼠标指针移入元素时,所做出的样式设置 示例一 <!DOCTYPE html> <html lang="en"> <head&g ...
随机推荐
- Response.End抛出ThreadAbortException 异常
最近在写程序过程中遇到了一个匪夷所思的错误:Response.End()方法抛出了ThreadAbortException异常,我的代码如下: public void doResponse(){ st ...
- DOM的概念(1)
什么是DOM? 通过 JavaScript,您可以重构整个HTML文档.您可以添加.移除.改变或重排页面上的项目.要改变页面的某个东西,JavaScript就需要对HTML文档中所有元素进行访问的入口 ...
- 判断访问的是移动端还是PC端,如果是移动端跳转页面
<script type="text/javascript"> var mobileAgent = new Array("iphone", &quo ...
- ZOJ-1239 Hanoi Tower Troubles Again!
链接:ZOJ1239 Hanoi Tower Troubles Again! Description People stopped moving discs from peg to peg after ...
- 真~让IE8支持background: rbga; ,IE8下兼容rgba颜色的半透明背景
IE8下兼容rgba颜色的半透明背景 这样的标题在百度和google搜索下很多篇文章,讲解IE8下兼容rgba的. 这些文章全部都是使用IE下的filter来使元素透明,但是这个里面会有bug. 它们 ...
- String相关的问题
基本事实:对于字符串常量,如果内容相同,Java认为它们代表同一个String对象.而用关键字new 调用的构造器,总是会创建新的对象,无论内容是否相同.字符串常量是放在常量池(或者叫常量缓冲区)里面 ...
- [原] Page_Load执行了两次,为什么?如何解决!
今儿个发现Page_Load执行了两次,想不通.后来,经找资料,总算查出原因.1.在aspx页面上写了 AutoEventWireup="true" ,这样Page_Load会自动 ...
- 自发行python版本制作(二)编译
本系列文章第二篇主要说明windows环境的编译环境搭建以及编译过程. 编译环境选择: 1.选用作神一样存在的Microsoft Visual C++ Compiler for Python 2.7为 ...
- jquery_ui_api中文
http://files.cnblogs.com/files/xjyggd/JQuery_UI_API.rar
- NPY and girls-HDU5145莫队算法
Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description ...