javascript - 随机图像仅应用一次

标签 javascript

我希望我的网站显示随机背景图像(我使用 JavaScript 设置),但我不希望它在用户访问网站时再次更改。目前,每次您单击链接时它都会发生变化,但我希望它仅在您点击主页按钮时发生变化。

我认为另一个问题是类似的,但由于我以前没有太多使用过 php,我想知道是否有 javascript 替代方案? (或者只是我在这里缺少的一些愚蠢的东西?) choose random value only once

谢谢

最佳答案

Javascript 解决方案(完全客户端):

使用sessionStorage

fileurls=["a.jpg","b,jpg"]// list of file URLS
function getFileURL(){
 if(sessionStorage.fileurl)
  return sessionStorage.fileurl;
 }else{
  sessionStorage.fileurl=fileurls[Math.floor(Math.rand()*fileurls.length)]
  return sessionStorage.fileurl;
 }
}

现在,只需设置 src图像的任何设置由函数:

document.body.style.background="url('"+getFileURL()+"')";

基本上,这会将随机文件 URL 放入浏览器存储中以供 session 使用,并在需要时使用它。

<小时/>

PHP 解决方案(完全服务器端):

$fileurls = array('a.jpg','b,jpg');
if(!isset($_SESSION['fileurl'])) {
    $_SESSION['fileurl'] = $fileurls[rand(0, count($fileurls) - 1)];
}

而且,无论 <body>标签是,执行以下操作:

 <body background="<?echo$_SESSION ['fileurl'];  ?>">

关于javascript - 随机图像仅应用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15883901/

相关文章:

javascript - 以特定方式解析嵌套对象数组

javascript - 有没有办法限制 ng-repeat 中重复项目的数量?

javascript - 如何在我的 vue 模板脚本中有条件地调用 apollo 客户端?

javascript - 每次我再次运行时,动画变得越来越快

javascript - JS - 遍历对象数组并输出属性

javascript - 如何根据起始索引循环/环绕数组?

javascript - 将图像纵横比保持在一个分区中

javascript - 针对数据值(value)问题

javascript - 如何从 JavaScript 中的自定义 json 字符串中提取值?

javascript - 限制用户调整浏览器窗口的大小