每当有人访问网页时,如何才能对背景进行更改,例如: 5图片,当我访问页面的eveytime还有另一个背景,那应该是cookies,对吗? 但我不希望在用户登录页面时进行后台更改,例如自动,只需刷新。 谢谢,任何帮助真的很感激。
答案 0 :(得分:1)
如果您正在寻找基于PHP的解决方案,您可以根据需要调整该代码:
<?php
$backgrounds = array(
'assets/backgrounds/0.jpg',
'assets/backgrounds/1.jpg',
'assets/backgrounds/2.jpg',
'assets/backgrounds/3.jpg',
'assets/backgrounds/4.jpg'
);
$expirity = time() + 81400; /* change it to whatever you want */
if ( isset( $_COOKIE['custom_background'] ) ) {
$backgroundIndex = ( $_COOKIE['custom_background'] < ( sizeof( $backgrounds ) - 1 ) ) ? $_COOKIE['custom_background'] + 1 : 0;
setcookie( 'custom_background', $backgroundIndex, $expirity, '/' );
} else {
setcookie( 'custom_background', 0, $expirity, '/' ); /* initial background will be first array element */
}
然后,在您的模板中,您可以显示如下背景图像路径:
echo isset( $_COOKIE['custom_background'] ) ? $backgrounds[ $_COOKIE['custom_background'] ] : 'some-default-background.jpg';
答案 1 :(得分:0)
你可以用javascript做到这一点。 首先,你可以读出一个cookie。在cookie中,您将找到访问次数。通过访问次数,您可以更改背景颜色。
var name = "visitCount" + "=";
var ca = document.cookie.split(';');
var cookieContent;
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) {
cookieContent = c.substring(name.length,c.length);
} else {
cookieContent = "";
}
}
if(cookieContent != "") {
if(cookieContent == "1") {
document.body.style.backgroundColor = "yellow";
document.cookie= "visitCount=2";
} else if(cookieContent == "2") {
document.body.style.backgroundColor = "red";
document.cookie= "visitCount=3";
}
} else {
//first visit
document.body.style.backgroundColor = "black";
document.cookie= "visitCount=1";
}
答案 2 :(得分:0)
最简单的解决方案。比以前的答案更好。这使用较少的代码: 在页面顶部(非常重要)!
<?php $bg = array('bglink1', 'bglink2', 'bglink3');$i = rand(0, count($bg)-1);$selectedBg = "$bg[$i]";?>
页面内的css
body {background:url(<?php echo $selectedBg; ?>) no-repeat center center fixed;}