Php 如何在刷新时进行全屏背景更改?

Php 如何在刷新时进行全屏背景更改?,php,javascript,jquery,css,server-side,Php,Javascript,Jquery,Css,Server Side,我想在刷新时生成备用图片的背景图像 我怎样才能做到这一点 这样做。我已经看过源代码了,但还没有完全弄明白。我发现它是通过服务器端脚本完成的,我的主机确实支持这一点,而且一个名为sizzle的脚本正在为Offliberty网站供电,但当我看到代码时,我太困惑了 如果您愿意,也可以在客户端轻松地执行此操作。在css中创建多个类: backgr0 { background-image: url('images/somepic.jpg'); } backgr1 { background-image: u

我想在刷新时生成备用图片的背景图像

我怎样才能做到这一点


这样做。我已经看过源代码了,但还没有完全弄明白。我发现它是通过服务器端脚本完成的,我的主机确实支持这一点,而且一个名为sizzle的脚本正在为Offliberty网站供电,但当我看到代码时,我太困惑了

如果您愿意,也可以在客户端轻松地执行此操作。在css中创建多个类:

backgr0 { background-image: url('images/somepic.jpg'); }
backgr1 { background-image: url('images/somepic.jpg'); }
backgr2 { background-image: url('images/somepic.jpg'); }
backgr3 { background-image: url('images/somepic.jpg'); }
backgr4 { background-image: url('images/somepic.jpg'); }
然后在jQuery就绪函数中:

$(function(){
   var backnum = Math.floor(Math.random()*5);
   $('body').addClass("backgr" + backnum);
});
如果需要,用div的#id替换body。

css中有20个左右的背景选项。如果您不想使用php asp或服务器端代码。您可以为此编写javascript

document.write ( '<div id=wrapper class=wrapper' + Math.floor(Math.random()*21) + '>');
document.write(“”);

当您试图确定是否使用JavaScript或服务器端代码完成了某些操作时,您可以做的第一件事是完全关闭JavaScript,重新加载页面几次,然后看看会发生什么

不幸的是,Offliberty默认情况下所有内容都是不可见的,所以在没有JS的情况下,它看起来就像一个空白屏幕。但是,内容仍然存在,因此它仍然有效

那些大背景图像被应用到
#wrapper
div,当我刷新时——即使关闭了JS——背景图像也在改变

看来他们是在用服务器端的东西来做这件事


(另外,值得一提的是,它是一个JavaScript库,可以让选择元素变得更容易。它不会对用户造成任何改变,只会让开发变得更简单。)

最好在服务器端执行此操作,在我看来,您使用的是PHP,所以我给您一个该语言的示例。背景图像仅在重新加载时更改,因此从逻辑上讲,差异应该在客户端从服务器接收的HTML中

您应该使用@DarthJDG为您提供的相同CSS类。唯一的区别是,您将在服务器上附加类,而不是在客户端

$number_of_classes=7; //the number of background images you have
$which_one=rand(0, $number_of_classes-1); //let's choose a class

printf('<body class="backgr%s">', $which_one); //put this wherever you are printing body
$number\u of_class=7//您拥有的背景图像数
$which_one=rand(0,$number_of_class-1)//让我们选一个班
printf(“”,$1)//把这个放在你要打印的地方

这可以使用jQuery完成,但使用服务器端脚本最简单。您能在服务器端使用任何东西吗?PHP、ASP.NET、Perl、Python…?非常感谢。我对php的理解超过了jquery,jquery基本上什么都不是,但我把最上面的两行放在哪里?@Toren,无论你在哪里输出你的
body
标记。例如,如果您有类似于
echo''的内容用我的代码替换它。非常感谢!我不知道我为什么不试一下@t如果您在此处的任何答案中找到了解决方案,请务必单击答案左侧的勾号将其标记为答案。