每次访问更改背景图像

时间:2013-05-14 02:22:27

标签: c# javascript jquery asp.net css

我的网站有大约50张背景图片。我想做的是每次访问时随机向用户显示不同的用户。我的意思是他们在访问期间将使用相同的背景图像浏览网站。

在他们关闭浏览器并重新访问或稍后再访问之后,他们会看到一个新的随机背景图像。不需要保存他们之前的背景图片的任何内容,只需每次新访问该网站时随机添加一个。

不确定这可以通过C#,Javascript,JQuery或CSS完成。

编辑:我在我的网络应用程序中使用ASP.net 4.0 C#。感谢

5 个答案:

答案 0 :(得分:2)

请勿使用评论中所述的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内容类型进行响应,并通过页面标题加载它。这样,当会话发生变化时,浏览器上的页面缓存不会影响脚本。

答案 1 :(得分:1)

将其保留在会话中。当它不在会话中时随机选择它,只要它们在你的网站上就会保持不变 - 下次它们回来时,它们会得到一个新的。

例如(我的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;
}

希望这有帮助!

答案 2 :(得分:0)

var list = [
    "/images01.png",
    "/images02.png",
 ...
];

/*background url*/ = list[Math.floor(Math.random()*list.length];

答案 3 :(得分:0)

当然有可能。我将在这里使用伪代码向您展示如何完成它。肯定会很快出现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']

祝福,

答案 4 :(得分:0)

尝试此功能:

/** 
 * 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';
}
相关问题