我试图在背景中随机化图像,我遇到了问题,因为div中已有内容
这是我到目前为止所得到的
<div class="welcome-inner">
<script type="text/javascript">
<!--
var imlocation = "welcome/";
var currentdate = 0;
var image_number = 0;
function ImageArray (n) {
this.length = n;
for (var i =1; i <= n; i++) {
this[i] = ' '
}
}
image = new ImageArray(3)
image[0] = 'background1.jpg'
image[1] = 'background2.jpg'
image[2] = 'background3.jpg'
var rand = 60/image.length
function randomimage() {
currentdate = new Date()
image_number = currentdate.getSeconds()
image_number = Math.floor(image_number/rand)
return(image[image_number])
}
document.write("<img src='" + imlocation + randomimage()+ "'>");
//-->
</script>
CONTENT
</div>
.row-welcome {
border-bottom: 0;
width: 100%;
margin: 0 auto;
overflow: auto;
margin-top: -20px;
background-position: 50% 50%;
background-size: cover;
border-bottom: 1px solid #1e346a;
}
welcome-inner确实有一个背景图片,但我删除了该行以试图让它工作
我遇到的问题是图像显示出来但是推倒了我的内容。
我如何调整它以使其有效?
答案 0 :(得分:0)
您将需要设置背景图像样式(如果您使用jQuery,这将更容易)。因此,不是创建一个正常文档流中的标记,而是更像这样的东西:
$("#welcome-inner").style("background-image", imlocation + randomimage());
并将"#welcome-inner"
更改为您想要设置背景图像的DOM元素的选择器。
答案 1 :(得分:0)
我认为你的整个方法都是错误的。尝试使用.sort()
,例如:
var doc = document;
function E(e){
return doc.getElementById(e);
}
function range(least, greatest){
var r = [];
for(var i=0,n=least; n<=greatest; i++,n++){
r[i] = n;
}
return r;
}
var rng = range(1, 3);
rng.sort(function(){
return Math.round(Math.random())-0.5;
});
for(var i in rng){
var img = new Image();
img.src = 'welcome/background"+rng[i]+".jpg';
// If you add an id called pickAnId to your welcome-inner className div then
E('pickAnId').appendChild(img);
}