每次访问更改背景图像

本文关键字:背景 图像 访问 | 更新日期: 2023-09-27 18:13:38

我的网站有大约50张背景图片。我要做的是随机呈现一个不同的用户为每次访问。我的意思是他们在访问过程中会使用相同的背景图像浏览网站。

当他们关闭浏览器并重新访问或稍后再访问时,他们会看到一个新的随机背景图像。不需要保存任何关于他们以前的背景图像是什么,只是一个随机的新访问的网站。

不确定这是否可以用c#, Javascript, JQuery或CSS完成。

编辑:我使用ASP.net 4.0 c#为我的web应用程序。谢谢

每次访问更改背景图像

不要使用评论中所说的cookies。这只会给发送到服务器的报头消息增加额外的带宽。

相反,使用浏览器中的本地存储来保存他们最后使用的图像。当一个新的会话开始时,增加这个值,并显示下一个图像。

我已经在项目中使用了jStorage,它工作得很好。

您可以将当前显示的图像保存在他们的浏览器存储中,也许还有会话ID。稍后,您可以检查会话ID是否已更改。如果是,则更改为其他图像。

var image = $.jStorage.get("image", 0);
var session_id = $.jStorage.get("session", "put current session id here");
if(session_id != "current session id")
{
   image = (image < 50) ? 0 : image+1;
   $.jStorage.set("image",image);
   $.jStorage.set("session","current session id");
}
// use image to set background
编辑:

不要把这个JavaScript放到每个网页中。相反,将它放在ASP中。. NET页面,该页面以Javascript内容类型响应并通过该页的页头加载它。这样,当会话发生变化时,浏览器上的页面缓存不会影响脚本。

保持在会话中。当它还没有在会话中随机选择时,只要他们在你的网站上,它就会保持不变——下次他们回来的时候,他们会得到一个新的。

例如(我的c#有点生疏):

public getBackground (HttpSessionState session) {
    String bg = (string) session["session.randomBG"];
    if (bg == null) {
        // pick a random BG & store  it.
        bg = "pick one";
        session["session.randomBG"] = bg;
    }
    return bg;
}

希望这对你有帮助!

var list = [
    "/images01.png",
    "/images02.png",
 ...
];
/*background url*/ = list[Math.floor(Math.random()*list.length];

当然有可能。我将在这里使用伪代码向您展示如何实现它。肯定很快就会出现Java中的例子。

每页开头:

StartSession()
If ! SessionVariable[myBackground] then
    x=Randomize 50
    SessionVariable[myBackground]="image0" + x + ".jpg"
endif
<style>
body {background-image:url(SessionVariable[myBackground];}
</style>

确保在适当的地方使用样式标签。SessionVariable[myBackground]是用户创建的。在PHP中,它看起来像这样:

$_SESSION['myBackground']

祝福,

试试这个函数:

/** 
 * Change background image hourly. 
 * Name your images with 0.jpg, 1.jpg, ..., 49.jpg.
 */
function getBackground2() {
  var expires = 3600000,
      numOfImages = 50,
      seed = Math.round(Date.now() / expires % numOfImages);
  return '/path/to/background/' + seed + '.jpg';
}