我有一个向下箭头图像,我正在尝试使用jQuery在悬停时替换。我看过使用纯CSS和背景图像的解决方案示例:但是我已经有背景了,所以不确定是否可以选择
我知道之前已经有人问过这个问题,但是我似乎无法使其工作
我要去哪里错了?
var currentImage;
$("#contentDiv").hover(function() {
currentImage = $('img', this).attr("src", "http://icons.iconarchive.com/icons/icons-land/play-stop-pause/256/Record-Normal-Red-icon.png");
$('img', this).attr("src", "https://cdn3.iconfinder.com/data/icons/UltimateGnome/256x256/actions/gtk-media-record.png");
}, function() {
$('img', this).attr("src", currentImage);
});
#contentDiv {
justify-content: center;
bottom: 2%;
display: block;
height: 50px;
left: 50%;
margin-left: -25px;
position: absolute;
width: 50px;
}
.arrowDown {
animation: bouncing 2s infinite ease-in-out;
bottom: 2%;
display: block;
height: 30px;
left: 50%;
margin-left: -25px;
position: absolute;
width: 30px;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="contentDiv">
<img src="https://cdn3.iconfinder.com/data/icons/UltimateGnome/256x256/actions/gtk-media-record.png" class="arrowDown" />
</div>
答案 0 :(得分:0)
应该为currentImage = $('img', this).attr("src");
,因为您不是要设置值,而是要获取值
$('img', this).attr("src", "whitedot.png")
=将src
的值设置为whitedot.png
$('img', this).attr("src")
=获取src
属性的值
工作演示
var currentImage;
$("#contentDiv").hover(function () {
currentImage = $('img', this).attr("src");
$('img', this).attr("src", "reddot.png");
console.log($('img', this).attr("src"))
}, function () {
$('img', this).attr("src", currentImage);
console.log($('img', this).attr("src"))
});
#contentDiv {
justify-content: center;
bottom: 2%;
display: block;
height: 50px;
left: 50%;
margin-left: -25px;
position: absolute;
width: 50px;
}
.arrowDown {
animation: bouncing 2s infinite ease-in-out;
bottom: 2%;
display: block;
height: 30px;
left: 50%;
margin-left: -25px;
position: absolute;
width: 30px;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="contentDiv">
<img src="whitedot.png" class="arrowDown"/>
</div>
答案 1 :(得分:0)
您获取属性值和更改属性值的js语法错误。将您的js脚本更改为
var currentImage ="";
$("#contentDiv").hover(function () {
currentImage = $('img',this).attr("src");
$('img',this).attr("src", "reddot.png");
}, function () {
$('img',this).attr("src", currentImage);
});
答案 2 :(得分:0)
您可以使用:hover
并在显示另一个元素时隐藏该元素:
div {
display: inline-block;
width: 100px;
text-align: center;
border: solid 1px silver;
background-image: url('https://image.freepik.com/free-vector/grey-square-pattern-background-vector-illustration_1164-1350.jpg');
background-size: cover;
}
img {
width: auto;
height: 50px;
}
.show-on-hover {
display: none;
}
.hide-on-hover {
display: inline;
}
div:hover .show-on-hover {
display: inline;
}
div:hover .hide-on-hover {
display: none;
}
<div>
<img class="hide-on-hover" src="https://www.freeiconspng.com/uploads/no-image-icon-13.png">
<img class="show-on-hover" src="http://cdn.onlinewebfonts.com/svg/img_299591.png">
</div>
答案 3 :(得分:0)
我能够执行您想做的事,但无法使用悬停功能。
这是一个说嘿的函数!当鼠标悬停在我上方时,执行此功能(changeImage)
$(function() {
$("#image1").on("mouseover", changeImage);
});
接下来,我们有一个函数说鼠标离开时运行此函数。 (changeImageBack)
$(function() {
$("#image1").on("mouseout", changeImageBack);
});
现在,我们必须执行我们提到的两个功能。 下面的changeImage使用src属性并对其进行更改。
function changeImage() {
$("#image1").attr("src", "rabid_dog.png");
}
最后,当changeImageBack会在鼠标离开时将scr属性改回
function changeImageBack() {
$("#image1").attr("src", "me.png");
}