【问题标题】:add different image in same button在同一个按钮中添加不同的图像
【发布时间】:2019-12-20 13:12:00
【问题描述】:

我有一个圆形按钮,我想在其中添加一个图像,并在单击同一个按钮时将该图像更改为另一个图像。

先让按钮中看到的图像为“a.svg”,点击按钮后看到的图像为“b.svg”。 这是我的小代码:

<div class="btn" style="float: right;">
<button class="showhide"><img></button></div>

我认为我们应该做一些 javascript,我需要你的帮助,我不想要 jquery。

【问题讨论】:

标签: javascript html image button


【解决方案1】:

您可以在 JQuery 中使用一个简单的标志来计算要显示的图像。

下面的 sn-p 显示了这一点:

var img = 0;

$('.showhide').click(function (e) {
  setImage();
});

function setImage() {
  var src = 'https://via.placeholder.com/150';
  if (img++ == 1) {
    img = 0;
    src = 'https://via.placeholder.com/200';
  }
  $('.showhide > img').attr('src', src);
}

setImage();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="btn" style="float: right;">
<button class="showhide"><img></button></div>

基本上,当单击按钮时,图像会在两个定义的图像之间切换。

您可以很容易地扩展它以使用数组中的图像源,而不是将其硬编码为单个图像:

var img = 0;
var images = [ 'https://via.placeholder.com/150', 'https://via.placeholder.com/200', 'https://via.placeholder.com/250' ];

$('.showhide').click(function (e) {
  setImage();
});

function setImage() {
  if (img > images.length - 1) {
    img = 0;
  }
  $('.showhide > img').attr('src', images[img++]);
}

setImage();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="btn" style="float: right;">
<button class="showhide"><img></button></div>

OP 评论:我希望它在 javascript 中而不是在 jQuery 中

对于没有 JQuery 的纯 JS 解决方案,只需将 JQuery 元素修改为它们的复合 JavaScript 元素:

var img = 0;
var images = [ 'https://via.placeholder.com/150', 'https://via.placeholder.com/200', 'https://via.placeholder.com/250' ];
var showHide = document.getElementById('showhide');
var showHideImg = document.getElementById('showhideimg');

showHide.addEventListener('click', function (e) {
  setImage();
});

function setImage() {
  if (img > images.length - 1) {
    img = 0;
  }
  showHideImg.src = images[img++];
}

setImage();
<div class="btn" style="float: right;">
<button class="showhide" id="showhide"><img id="showhideimg"></button></div>

【讨论】:

  • 我希望它在 javascript 中而不是在 jQuery 中请@Martin
  • @Aarzu 我已经为你添加了一个相同的纯 JS 实现
  • 对不起,但现在我只希望它作为图像而不是按钮,请原谅我 :); ``` ``` 和 js ``` var image = document.getElementById("imageOne");函数 changeColor() { if (image.getAttribute('src') == "eye-solid.svg") { image.src = "key.png"; } else { image.src = "eye-solid.svg"; } } ```
  • 请帮助我@Martin
  • @Aarzu 我认为这是一个不同的问题;我已经回答了你已经问过的那个。请添加一个新的,我会尽力提供帮助
猜你喜欢
  • 1970-01-01
  • 2020-08-12
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 2023-02-12
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多