一般在使用<img>标签时,有时会有移动鼠标到图片上时改变图片状态的需求, 如切换图片、显示图片信息、打开新窗口等。下面以切换图片举例讲解方法。
使用CSS
在CSS中有一种选择器:hover(注意:是一体的),:hover选择器用于选择鼠标指针浮动在上面的元素,也就是实现鼠标移动到图片上时改变图片状态,此方法是用把图片设置成背景图的方式实现的。可以写在.CSS文件中或.html文件的<style></style>
先写一个类选择器,也可以是其他选择器。
.img{
/*插入背景图片,url()中填写图片路径*/
/*注意因为路径是字符串所以要加"",或者用字符串变量*/
background-image:url("此处为图片路径");
}
由于上面使用了类选择器,这时我们只需要把一个标签的class属性设置为img,就把背景图片给设置了,此时的背景图片是在鼠标移动前显示的图片。标签可以是所用支持背景图片的标签,以<div></div>标签为例。
<div class="img"></div>
接下来给.img设置:hover改变背景图片,:hover选择器还可以根据需求改变其他属性,但改变的时间只是在鼠标悬停期间才显示,鼠标移开后会变回之前的设置。
.img:hover{
background-image:url("此处为鼠标移动到图片上时显示的图片的路径");
}
此时已经完成鼠标移动到图片上时改变图片的效果。需要注意的是如果图片小于设置背景的标签的大小时,会以图片重复的方式填充背景。完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片切换</title>
<style type="text/css">
.img{
/*插入背景图片,url()中填写图片路径*/
/*注意因为路径是字符串所以要加"",或者用字符串变量*/
/*如果图片不显示试着调整标签大小(width,height)*/
background-image:url("此处为原图片路径");
}
.img:hover{
background-image:url("此处为鼠标移动到图片上时显示的图片的路径");
}
</style>
</head>
<body>
<div class="img"></div>
</body>
</html>
使用JavaScript
使用JavaScript以使用<img>标签为例,我们只需要设置该<img>标签的鼠标悬停事件onmouseover,与鼠标移开事件onmouseout就行了。因为鼠标悬停事件onmouseover改变的属性不会再鼠标移开后恢复,所以要定义鼠标移开事件onmouseout恢复设置。注意this.src=后面使用的是单引号 ' '。
<img src="此处为原图片路径" onmouseover="this.src='此处为变化后图片路径'"
onmouseout="this.src='此处为原图片路径'">
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片切换</title>
</head>
<body>
<img src="此处为原图片路径" onmouseover="this.src='此处为变化后图片路径'"
onmouseout="this.src='此处为原图片路径'">
</body>
</html>
也可以把onmouseover与onmouseout写在<script></script>标签中,此时需要用document.getElementById("标签上自己定义的id")方法,然后用一个变量接收,此时可以理解为该变量是使用此id的标签的对象,且可以改变该标签的属性。注意id是字符串。
var img1 =document.getElementById("标签上自己定义的id")
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片切换</title>
<script type="text/javascript">
window.onload = function () {
var img1 =document.getElementById("imgid")
img1.onmouseover = function () {
img1.src="此处为变化后图片路径";
}
img1.onmouseout = function () {
img1.src="此处为原图片路径";
}
}
</script>
</head>
<body>
<img id="imgid" src="此处为原图片路径">
</body>
</html>