页面刷新时更改图像背景

时间:2014-03-05 13:52:15

标签: javascript html css

我希望div id =“img”的背景完整图像在重新加载页面时更改,这可以在纯CSS上完成还是需要javascript?这是我的http://jsfiddle.net/9Dp2e/我使用javascript与jquery随机更改背景图像,但我不使用下面的代码,任何帮助将不胜感激。

Here is my html:
<div id="header">
<ul>
<div id="wrapper">
  <li class="logo"></li>
  <li>Homes</li>
  <li>Offices</li>
  <li>Products</li>
  <li></li>
  <li></li>
  </div>
</ul>

</div>
<div id="center">
<div id="slider">





<div id='footercopy'>

<p>Copyright 2014 &nbsp<a href=""></a></p>

</div>




<div id="img">

<img src="http://upload.wikimedia.org/wikipedia/commons/e/e7/Flaming_cocktails.jpg">

</div>


</body>
</html>

Here is my css:
html,body
{
height:100%;
}
body
{
font-family: 'Open Sans Condensed', sans-serif;
}
h1
{
font-size:30px;
}
#img
{
 position: fixed; 
  top: -50%; 
  left: -50%; 
  width: 200%; 
  height: 200%;
}
#img img
{
 position: absolute; 
  top: 0; 
  left: 0; 
  right: 0; 
  bottom: 0; 
  margin: auto; 
  min-width: 50%;
  min-height: 50%;
}
#center
{
position:relative;
z-index:10;
top:0;
min-height:1000px;
background:white;
width:960px;
margin-right:auto;
margin-left:auto;
min-height:1000px;
padding:20px;
}
#header
{
position:relative;
z-index:20;
color:white;
position:fixed;
top:0;
width:1700px;
margin-right:auto;
margin-left:-10px;
background:silver;
opacity:0.7;
}
#wrapper
{
width:960px;
margin-right:auto;
margin-left:auto;
}
#header li
{
display:inline;
padding-right:20px;
}
.logo
{
font-family: 'Lobster', cursive;
font-size:30px;
color:blue;
}

/*content*/
#content
{
padding-top:80px;
width:500px;
}
.floatLeft 
{ 
float:left;
margin: 4px; 

}
.floatRight 
{ 
float: right; 
margin: 4px; 
}
#content img
{
width:100px;
height:100px;
padding:20px;
}
.width
{
width:250px;
padding:10px 30px;
}
#sidebar
{
margin-top:50px;
float:right;
min-height:1500px;
text-align:center;
}
#sidebar img
{
width:150px;
height:150px;
}
#sidebar li
{
list-style:none;
padding:10px;

}
#content-right
{
padding-top:80px;
width:450px;
float:right;
}
#content-right img
{
width:100px;
height:100px;
padding:20px;
}

Here is my javascript:
var images = ['http://acdutyfree.com/images/Page95_LiquorAndTobacco_BombaySapphire_DistilledLondonDryGin_800x800.jpg', 'http://images.china.cn/attachement/jpg/site1007/20130621/0013729929f1132dee4303.jpg', ];
$('#header').css({'background-image': 'url(images/' + images[Math.floor(Math.random() * images.length)] + ')'});
$('<img src="http://acdutyfree.com/images/Page95_LiquorAndTobacco_BombaySapphire_DistilledLondonDryGin_800x800.jpg' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#img');

5 个答案:

答案 0 :(得分:1)

LINK 它正在使用您的逻辑,只需在小提琴中添加jquery并增加图像数量并删除不需要的内容即可进行检查。

因为我们只有两个值,因此在1和0之间的

Math.random()将具有较少的随机行为概率

答案 1 :(得分:1)

你可以用这个......作品非常好。刚刚完成了:)

这个没有jQuery。无需在页面中加载繁重的脚本:)

//You can increase the images by adding more links to the array 
var array = ['http://acdutyfree.com/images/Page95_LiquorAndTobacco_BombaySapphire_DistilledLondonDryGin_800x800.jpg','http://images.china.cn/attachement/jpg/site1007/20130621/0013729929f1132dee4303.jpg'];
function shuffle(array) {
var currentIndex = array.length;
var temporaryValue;
var randomIndex;
  while (0 !== currentIndex) {
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }
  return array;
}
var shuffled_images = shuffle(array);
var yourbackground = document.getElementById('img');
yourbackground.style.backgroundImage = 'url(' + shuffled_images[0] + ')' ;

答案 2 :(得分:0)

查看本教程:http://briancray.com/2009/12/28/simple-image-randomizer-jquery/

  1. 从一系列图片开始。 将数组中的图像文件名更改为实际的文件名。不要仅包含目录文件名。

    <i>This is not italic</i>, and [this is not a link](http://example.com)var images = ['image1.jpg', 'image2.jpg', 'image3.jpg', 'image4.jpg', 'image5.jpg'];
    
  2. 使用jQuery和CSS background-image

    设置随机背景
    $('#body').css({'background-image': 'url(images/' + images[Math.floor(Math.random() * images.length)] + ')'});
    

答案 3 :(得分:0)

尝试使用: 在这里,您必须使用,

Math.random()中的{p> Math.round()因为,Math.round()将您的返回值设为0和1,所以如果您只有两张图片,那么Math.round()表现得很好,而< em>可能不会重复任何背景。

var images = ['http://acdutyfree.com/images/Page95_LiquorAndTobacco_BombaySapphire_DistilledLondonDryGin_800x800.jpg', 'http://images.china.cn/attachement/jpg/site1007/20130621/0013729929f1132dee4303.jpg', ];
var random = Math.round((Math.random()*images.length))

$('#background').css({'background-image':images[random]})

答案 4 :(得分:-3)

尝试绑定'beforeunload':

$(window).bind('beforeunload',function(){
    /* change background */
});

如何从图像数组中读取图像?

  • 读取cookie值(计数器):如果没有值,则保存为0值。
  • 阅读图片[count]
  • on'afterunload'保存在coockie count + 1(如果count&gt; images.length - &gt; count = 0)