【发布时间】:2020-01-26 23:49:42
【问题描述】:
我正在使用下面的代码来旋转 3 个正常工作的图像。
我遇到的问题是 image1.png 经常更改,浏览器不会刷新图像。刷新页面不是一种选择。
我知道我可以在文件名的末尾添加一个时间变量,例如image1.png?41234134(例如),但是如何在不刷新页面的情况下执行此操作? (我熟悉 PHP,可以在页面加载时获得新的时间戳,但我不确定如何在 Javascript 或 jquery 中执行此操作而不重新加载页面以获取新值)。
<?php
echo '
<div id="rotating-item-wrapper">
<img style="position: absolute; top: 0; right: 0;" width="480" height="480" src="' . $absolute_path . '/image1.png" class="rotating-item" />
<img style="position: absolute; top: 0; right: 0;" width="480" height="480" src="' . $absolute_path . '/image2.png" class="rotating-item" />
<img style="position: absolute; top: 0; right: 0;" width="480" height="480" src="' . $absolute_path . '/screen_600x600.png" class="rotating-item" />
</div>';
?>
页面还加载了一些 Javascript 来进行图像旋转:
$(window).load(function() {
var InfiniteRotator =
{
init: function()
{
var initialFadeIn = 1000;
var itemInterval = 10000;
var fadeTime = 1000;
var numberOfItems = $('.rotating-item').length;
var currentItem = 0;
$('.rotating-item').eq(currentItem).fadeIn(initialFadeIn);
var infiniteLoop = setInterval(function(){
$('.rotating-item').eq(currentItem).fadeOut(fadeTime);
if(currentItem == numberOfItems -1){
currentItem = 0;
}else{
currentItem++;
}
$('.rotating-item').eq(currentItem).fadeIn(fadeTime);
}, itemInterval);
}
};
InfiniteRotator.init();
});
【问题讨论】:
-
您的意思是第一张图片会在用户加载页面后 刷新?你想继续显示最新的图像吗?您可以添加另一个间隔并在里面运行类似
document.querySelector("#rotating-item-wrapper img").src = "/absolute/path/image1.png?" + Math.random();的内容。 -
@ChrisG 感谢您的回复。该页面仅加载一次并停留在用户屏幕上。图像旋转脚本将正确循环所有三个图像(就像现在一样),但 image1.png 可能在服务器上已更改,我需要它来获取新的 image1.png(无需刷新页面)。
-
@ChrisG感谢您的编辑和更多信息。我不知道如何在 javascript 中做到这一点,我可以做 PHP 但根本不知道 javascript,冷你进一步帮助?谢谢。
标签: javascript php html