使用 JavaScript 刷新页面时如何更改图像?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/9700986/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-26 07:31:18  来源:igfitidea点击:

how to change the image when a page is refreshed using JavaScript?

javascripthtmldhtml

提问by Fernando

I want to change the image when the page is refresh using html. I place my partial code here. i want a script or anything do change the image when the page gets refresh.. Please help me to do this using html ...

我想在使用 html 刷新页面时更改图像。我把我的部分代码放在这里。我想要一个脚本或任何东西在页面刷新时更改图像.. 请帮助我使用 html 执行此操作...

        <div class="one-image">
           <a href="">
            <img src="img/IMG_1035.jpg" class="giThumbnail" alt="Nightclubs"></a><h4 class="giDescription">
             Nightclubs</h4>
             </div>

the above image tag image is change every refresh.. please help me ..

上面的图片标签图片每次刷新都会改变..请帮帮我..

回答by Chris Gessler

I believe this would work, but all your images would have to be sequentially named, e.g. 1-100. Also note that the script was placed AFTER the IMG tag.

我相信这会起作用,但是您的所有图像都必须按顺序命名,例如 1-100。另请注意,脚本放置在 IMG 标记之后。

<div class="one-image">            
  <a href="">             
    <img id="imgRand" src="" class="giThumbnail" alt="Nightclubs">
  </a>
  <h4 class="giDescription">              
    Nightclubs
  </h4>              
</div> 

<script language="javascript">
  // random number between 1 and 100
  var numRand = Math.floor(Math.random()*101);
  document.getElementById("imgRand").src = "img/IMG_"+numRand+".jpg";
</script>

The random formula in JS is:

JS中的随机公式是:

var random = Math.floor(Math.random() * (max - min + 1)) + min; 

so if you only had 5 images between 135 and 140 your script would look like:

因此,如果您只有 5 张介于 135 和 140 之间的图像,您的脚本将如下所示:

var random = Math.floor(Math.random() * (140 - 135 + 1)) + 135; 

If you wanted to change the image client-side, like a slideshow, just add a timer.

如果您想更改图像客户端,如幻灯片,只需添加一个计时器。

<script language="javascript">
  function setImg(){
  // random number between 1 and 100
  var numRand = Math.floor(Math.random()*101);
  document.getElementById("imgRand").src = "img/IMG_"+numRand+".jpg";}


  // call it the first time
  setImg();

  // set an interval to change it every 30 seconds
  window.setInterval("setImg()",30000);
</script>

回答by Sudhir Bastakoti

Not Tested but something like this should work using Javascript:

未测试,但类似这样的事情应该使用 Javascript 工作:


//Add following inside script tag
//Add id to your image tag
var theImages = new Array();
theImages[0] = 'images/first.gif' // replace with names of images
theImages[1] = 'images/second.gif' // replace with names of images
theImages[2] = 'images/third.gif' // replace with names of images
......
var j = 0
var p = theImages.length;
var preBuffer = new Array();

for (i = 0; i < p; i++){
    preBuffer[i] = new Image();
    preBuffer[i].src = theImages[i];
}
var whichImage = Math.round(Math.random()*(p-1));

function showImage(){
    document.getElementById("yourImgTagId").src = theImages[whichImage];
}

//call the function 
showImage();

Did you mean something like that

你是不是这个意思

回答by davidethell

What type of server are you using? Using PHP or ASP you can accomplish this using a script that cycles through your images in a script. So your HTML would just point to the script instead of directly to an image:

您使用的是什么类型的服务器?使用 PHP 或 ASP,您可以使用在脚本中循环浏览图像的脚本来完成此操作。所以你的 HTML 只会指向脚本而不是直接指向图像:

<img src="image_rotation_script.php" class="giThumbnail" alt="Nightclubs">

Then your script would rotate through your various images. Here is a PHP example:

然后您的脚本将在您的各种图像中旋转。这是一个 PHP 示例:

<?php
header('content-type: image/jpeg');
// Your own logic here to pull from a database, randomize an array of images etc.
$images = array('img/IMG_1.jpg','img/IMG_2.jpg','img/IMG_3.jpg');
$imageFile = array_rand($images);
$image = imagecreatefromjpeg($imageFile);
imagejpeg($image);
imagedestroy($image);
?>

回答by Stefan

Use can use JavaScript to change the src field of the image tag. First insert an ID attribute to your img tag, or a NAME attribute if it appears more often on the same page.

使用可以使用 JavaScript 来更改图像标签的 src 字段。首先在你的 img 标签中插入一个 ID 属性,如果它在同一页面上出现得更频繁,则插入一个 NAME 属性。

<img id="nightClubImage" src="img/IMG_1035.jpg" class="giThumbnail" alt="Nightclubs">

Then write a script and change the src field:

然后编写脚本并更改 src 字段:

document.getElementById('nightClubImage').src = "newImage.jpg";

回答by Minty

If you want use only client-side solution try this:

如果您只想使用客户端解决方案,请尝试以下操作:

<img src="img/IMG_1035.jpg" class="giThumbnail" alt="Nightclubs">
<script type="text/javascript">
    var images = ['img/IMG_1035.jpg', 'img/IMG_1036.jpg', 'img/IMG_1037.jpg'];
    document.getElementById('gitThumbnail').src = images[Math.round((Math.random() * (images.length-1))];
</script>