繁体   English   中英

如何使用JavaScript更改点击时的图片来源?

[英]How can I change the image source on click with JavaScript?

我试图弄清楚如何在单击不同按钮以显示动物图片时更改图像源。 我的JS代码位于HTML文档开头的脚本标签之间。 我将其粘贴在下面。 我正在使用Safari。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Welcome</title>
    <link rel="stylesheet" href="styles.css">

    <script>
    function change (){
     document.getElementById("pic").src="./images/lion.jpg";
    }
    </script>

  </head>
  <body>

  <header>
   <div class="container">
    <h1>Choose an Animal</h1>
    <hr>
   </div>
  </header>

  <section>
   <div class="container">
    <img src="./images/image.jpg" id="pic">
   </div>
  </section>

  <section id="animals">
   <div class="container">
     <button type="button" class="button1"     onclick="change">Lion</button>
     <button type="button" class="button1">Tiger</button>
     <button type="button" class="button1">Bear</button>
   </div>
  </section>



  </body>
</html>

我可能会尝试将ID分配给容器div并设置CSS,以便div的背景就是您想要的图像,类似地,您可以使用js更改CSS背景。

  <section> <div class="container" id="pic"> <!-- no img tag needed now --> </div> </section> 

在这里,您可以使用js抓取div,并让click函数执行更改图像的相同任务,但是它将通过在CSS中更改div的background-image属性来执行此操作。

 function myFunc () { document.getElementById('pic').style.backgroundImage = 'url(path/to/image.jpg)'; } 

如果使用的是JQuery,则可以以更有效的方式编写代码。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Welcome</title>
    <link rel="stylesheet" href="styles.css">
  </head>
  <body>

  <header>
   <div class="container">
    <h1>Choose an Animal</h1>
    <hr>
   </div>
  </header>

  <section>
   <div class="container">
    <img src="images/lion.jpg" id="pic">
   </div>
  </section>

  <section id="animals">
   <div class="container">
     <button type="button" class="button1" data-img="lion.jpg">Lion</button>
     <button type="button" class="button1" data-img="tiger.jpg">Tiger</button>
     <button type="button" class="button1" data-img="bear.jpg">Bear</button>
   </div>
  </section>

   <script
  src="https://code.jquery.com/jquery-3.2.1.min.js"
  integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
  crossorigin="anonymous"></script>

  <script type="text/javascript">
    $(function(){
      $('.button1').on('click',function(){
        var image = $(this).data('img');
        $('.container #pic').attr('src','images/'+ image);
      });  
    })
  </script>

一个入门的简单选择是将JavaScript更改为以下内容:

 function change(index) { var imageLookup = ["./images/lion.jpg", "./images/tiger.jpg", "./images/bear.jpg"]; document.getElementById("pic").src = imageLookup[index]; } 

如果将图像列表放置在数组中,则可以将每个按钮的索引传递给change函数。

如图所示,修改按钮功能,将狮子更改为(0),将老虎更改为(1),将熊更改为(2)。 狮子,老虎和熊,噢,我的...如果您的图像路径正确,则应该看到一些切换。

如果您仍在挣扎,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM