我希望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  <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');
答案 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/
从一系列图片开始。 将数组中的图像文件名更改为实际的文件名。不要仅包含目录文件名。
<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'];
使用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 */
});
如何从图像数组中读取图像?