每次访问更改背景图像
本文关键字:背景 图像 访问 | 更新日期: 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';
}