[英]How can I make an image change to another image when I click on it
我正在制作一个网站,但遇到了问题。 我需要在单击图像时进行更改,然后在再次单击时将其更改回原始图像。 谁能帮我这个?
这是我到目前为止尝试过的代码,但似乎对我不起作用。
<img width="200" height="150" align="right" onclick="changeImg(this, 'Images/Rest2.jpg')" src="Images/Rest2.jpg">
function changeImg(img, Images/Rest1.jpg) {
img.src = Images/Rest1.jpg;
}
<html>
<body>
<img src="foo.jpg" id="myImage">
<script>
var myImage = document.querySelector('#myImage');
myImage.addEventListener('click',function(e) {
var src = (e.target.src || e.srcElement.src);
if(src == 'foo.jpg') {
src = 'bar.jpg';
} else {
src = 'foo.jpg';
}
},false);
</script>
</body>
</html>
您要的是“切换”功能。 此示例要求您为img
id
属性。
<img id="image" ...
然后使用以下JS代码:
document.getElementById('image').onclick = function() {
if (this.src == 'Images/Rest1.jpg') {
this.src = 'Images/Rest2.jpg';
} else if (this.src == 'Images/Rest2.jpg') {
this.src = 'Images/Rest1.jpg';
} else {
alert('error');
}
}
这是一个如何使用Jquery / JS实现的想法:
将您的图片标签放入div
处理该div的onClick事件
我希望这有帮助。 您可以发布现有代码,以便找出解决方案。
将当前img
源设置为一个变量,第二个源设置为另一个变量。 然后将src
属性更改为您的变量,如下所示:
<img src="http://lorempixel.com/200/100/sports/"/>
var source = $('img').attr('src');
var source1 = "http://lorempixel.com/200/100/food/"
$('img').click(function(){
$(this).attr('src',source1);
if($(this).attr('src') == source1) $(this).attr('src', source);
});
在我的小提琴中,每次都会有不同的图像,因为我以lorempixel图像为例,但是如果放置2张图像,则会得到想要的结果。
速记JavaScript切换
javascript
document.getElementById('img').onclick=function(){
this.src=(this.src=='img1.jpg'?'img2':'img1')+'.jpg';
}
其中“ img1.jpg”应该是图像的完整链接。 因为即使您仅添加img1.jpg,浏览器也会将其解析为http://example/img1.jpg
函数内部的console.log(this.src)
,您将获得正确的路径。
html
<img id="img" src="img1.jpg">
如果您不打算稍稍更改代码,这是一种现代的方法,但是兼容性较差:
css3
#container{
width:200px;height:200px;
background:url('img1.jpg') center center no-repeat;
background-size:contain;/*or cover or 200px 200px*/
-webkit-transition:all 700ms ease;/*animation -moz,-ms...*/
}
#container.active{
background-image:url('img2.jpg');
}
js 1.7
document.getElementById('container').onclick=function(){
this.classList.toggle('active');
}
html
<div id="container"></div>
铬测试示例。
如果您不赞成,请解释一下原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.