每个会话设置一次随机背景图像

时间:2012-07-24 10:15:37

标签: jquery html css image

我对jquery很新。我希望能够随机设置标题背景图像。每次页面刷新时我都不希望它改变。相反,我只想在每个会话中设置一次。我假设我需要使用会话cookie,但无法使其工作。

以下是我在每次刷新时可以正常工作的内容。我只想在每次刷新时停止更改。

$(document).ready(function () {
var randomImages = ['image1', 'image2', 'image3', 'image4', 'image5'];
var rndNum = Math.floor(Math.random() * randomImages.length);
var imageFile = $('#imgpathname').val() + randomImages[rndNum] + ".jpg";
$("div#header").css({ background: "url(" + imageFile + ") no-repeat" });
});

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您好,为什么不将您的imageID存储在html5存储对象(如sessionStorage / localStorage)中,请访问 Html5 Storage Doc 以获取更多详细信息。使用此功能,您可以在本地临时/永久存储中间值,然后访问您的值 用于存储会话的值

sessionStorage.getItem('label')
sessionStorage.setItem('value', 'label')

或使用

永久存储值
localStorage.getItem('label')
localStorage.setItem('value', 'label')

因此,您可以使用html5存储对象在多个页面之间存储(临时)表单数据,您甚至可以在重新加载后保留这些对象。

现在,您可以在sessionstorage中存储图像ID,并在刷新页面时使用它,以便每个会话加载相同的图像。

答案 1 :(得分:1)

jQuery.cookie.js可能会在这里帮助你:

https://github.com/carhartl/jquery-cookie/

在项目页面中,创建会话cookie非常简单:

$.cookie('the_cookie', 'the_value');

然后,您可以在每次加载页面时阅读此cookie。

$.cookie('the_cookie'); // => "the_value"

我希望有所帮助。如上所述,可以使用HTML5本地存储,但会话cookie得到更广泛的支持。