【javascript/css】关于鼠标事件onmousexxx和css伪类hover
在运用鼠标移入移出事件时,一般有两种做法,一种是DOM事件的"onmouseover"和"onmouseout",还有一种是css的伪类":hover"。
在实际运用中如何选择,取决于清楚明白的了解他们之间的区别。
HTML DOM 允许 JavaScript 对 HTML 事件作出反应。
在我们为元素绑定了一个事件,当事件发生的时候,可以执行一段javascript代码。
关于鼠标事件,总共有:
onmouseover和onmouseout 鼠标指针移动到或离开元素时触发脚本
onmousedown和onmouseup 鼠标按钮被按下或松开时触发脚本
onclick和ondbclick 鼠标单击和双击时触发脚本
onmousemover 鼠标指针移动时触发脚本
鼠标事件的使用方法大同小异,即在元素标签内分配事件属性,然后将需要执行的javascript代码放置到事件触发的函数内,当我们点击该元素时,就会触发相应javascript代码。
例如:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="utf-8" />
<script type="text/javascript">
function over(obj){
obj.innerHTML = "进来了";
obj.style.background = "red";
}
function out(obj){
obj.innerHTML = "出去了";
obj.style.background = "#666";
}
</script>
<style type="text/css">
#box {
width: 400px;
border: 2px solid;
margin: 200px auto;
line-height: 100px;
text-Align: center;
}
#img1,#img2 {
height: 100px;
margin: 2px;
background: #ccc;
} </style>
<title>opacity</title>
</head>
<body>
<div id="box">
<div id="img1" onmouseover="over(this)" onmouseout="out(this)">这个是内容1</div>
<div id="img2">这个是内容2</div>
</div>
</body>
</html>
设立了2个相同的块,分别给2个块分配了鼠标指针移动到元素以及移出元素的事件onmouseover和onmouseout。
鼠标没有动作时:
鼠标移动到内容1上:
鼠标移出内容1:
现在我们来尝试用css的伪类:hover达到这种动态效果。
我们在css样式中添加如下代码:
#img2:hover {
background: #666;
}
随后看看效果:
把鼠标移动到内容2上:
移出:
这样就能看出区别了。
CSS 是层叠样式表 (Cascading Style Sheets)的缩写,只能对元素的样式做出改变,而无法对元素的内容动态更改,因为那是前端脚本所做的事。
还有当鼠标移到元素上时,使用伪类":hover"和"onmouseover"虽然在一定程度上能够达到同样的效果,不过当移出元素后,运用了伪类":hover"的内容2恢复了移入前的状态,而运用了"onmouseover"的内容1确保持了js对元素的更改,并且当元素绑定了多个事件时,元素保持最后一个触发的事件的状态。
所以在平时的使用中,如果仅止为了样式显示的效果,可以使用CSS的伪类,如果需要动态改变,则选择js的事件。
【javascript/css】关于鼠标事件onmousexxx和css伪类hover的更多相关文章
- CSS入门(定位之浮动定位、伪类之鼠标悬停、光标修改和透明度修改和列表样式)
一.定位 所为定位,实际上就是定义元素框相对于其正常位置,应该出现在哪儿 定位就是改变元素在页面上的默认位置 分类: 普通流定位(元素默认的定位方式) 浮动定位 相对定位 绝对定位 固定定位 1.普通 ...
- CSS 选择器之基本选择器 属性选择器 伪类选择器
CSS 选择器 常见的选择器列表图 CSS选择器笔记 基本选择器 通配符选择器(*) 元素选择器(E) 类选择器(.className) 所有浏览器都支持类选择器,但多类选择器(.classNa ...
- 关于css伪类:hover的用法
关于伪类:hover大家都用过,也比较熟悉.今天介绍一种新的用法(不是我发现的,但是以前一直没这么用过).在Chrome浏览器下,当a标签使用display:black;时a:hover的属性浏览器就 ...
- CSS禁止鼠标事件---pointer-events:none
pointer-events:none顾名思意,就是鼠标事件拜拜的意思.元素应用了该CSS属性,链接啊,点击啊什么的都变成了“浮云牌酱油”.
- CSS 高级:尺寸、分类、伪类、伪元素
CSS 尺寸:允许你控制元素的高度和宽度.同样,还允许你增加行间距. CSS 分类:允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的 ...
- CSS样式学习-3、轮廓、伪类/元素、display-flex布局
一.轮廓 outline绘制于元素周围的一条线,位于边框边缘外围. 属性规定元素轮廓的样式.颜色.宽度. outline-width轮廓宽度,属性:thin细轮廓.medium中等(默认值).thic ...
- 理解是最好的记忆方法 之 CSS中a链接的4个伪类为何有顺序
在CSS中,a标签有4种伪类,分别为: a:link, a:visited, a:hover, a:active 对其稍有了解的前端er都知道,4个伪类是有固定顺序的(LVHA),否则很容易出现预期之 ...
- CSS躬行记(2)——伪类和伪元素
一.伪类选择器 伪选择器弥补了常规选择器的不足,能够实现一些特殊情况下的样式,例如在鼠标悬停时或只给字符串中的第一个字符指定样式.与类选择器类似,可以从HTML元素的class属性中查看到,但伪选择器 ...
- CSS 属性 :before && :after的用法,伪类和伪元素的区别
一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before ...
随机推荐
- codeforces 914E Palindromes in a Tree(点分治)
You are given a tree (a connected acyclic undirected graph) of n vertices. Vertices are numbered fro ...
- javascript高级程序设计读书笔记----面向对象的程序设计
创建对象 工厂模式 function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = ...
- VCS简介
VCS -Version Control System 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 特征 1.记录文件的所有历史变化 2.随时可恢复到任何一个历史状 ...
- AI_图像识别
http://ai.baidu.com/forum/topic/show/595938 经测试识别率相当高,车辆信息识别 文中的import cv2不是python3自带库,需要安装pip3 inst ...
- SQL 语句常用函数
一.字符转换函数 1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错. 2.CH ...
- Django FileFieldManage
default_storage >>> from django.core.files.base import ContentFile >>> from django ...
- git subrepo
此文已由作者张磊授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 前言 目前对 git 仓库拆分的已有实现之一,并没有合并到 git 发行版中.项目的地址是 https://g ...
- H5活动产品设计指南基础版
本文来自 网易云社区 . H5一般页面不会很多,看似简单,实际上会有很多细节需要注意,我自己在做过了几个H5之后,发现了一些常犯的问题,做了小结,希望给新开始做H5的产品相关的同学提供一些帮助. 首 ...
- BAT机器学习面试1000题系列(41-45题)
41.线性分类器与非线性分类器的区别以及优劣 如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是.常见的线性分类器有:LR,贝叶斯分类,单层感知机.线性回归常见的非线性分类器: ...
- sublime基本命令和使用
Ctrl+Shift+p Package Control Ctrl+D 选词 (反复按快捷键,即可继续向下同时选中下一个相同的文本进行同时编辑)Ctrl+G 跳转到相应的行Ctrl+J 合并行(已选 ...