onload javascript将背景图像分配给div
我有这段代码,它通过在“src”中通过javascript打印其url,将不同的图像加载到“img”。在CSS完成“img”标记中的内容后 我尝试了下面的代码,但我觉得很笨拙。我不知道;我不知道这是否可能,或者是否有一种比通过javascript实现的方法更简单的方法。如你所见,我不是专家onload javascript将背景图像分配给div,javascript,jquery,css,background,onload,Javascript,Jquery,Css,Background,Onload,我有这段代码,它通过在“src”中通过javascript打印其url,将不同的图像加载到“img”。在CSS完成“img”标记中的内容后 我尝试了下面的代码,但我觉得很笨拙。我不知道;我不知道这是否可能,或者是否有一种比通过javascript实现的方法更简单的方法。如你所见,我不是专家 $(window).load(function() { var randomImages = ['img1','img2','img3']; var rndNum = Math.floor(M
$(window).load(function() {
var randomImages = ['img1','img2','img3'];
var rndNum = Math.floor(Math.random() * randomImages.length);
var url = 'url(_img/bg_array/' + randomImages[rndNum] + '.jpg)'
$('#home').css({
'background:' url 'no-repeat' 'center' 'center' 'fixed',
'-webkit-background-size': 'cover',
'-moz-background-size': 'cover',
'-o-background-size': 'cover',
'background-size': 'cover'
});
}
谢谢
编辑:更多信息//////////////////////////////
jfriend00的答案似乎100%正确且符合逻辑。我试着使用第二种选择。两种选择我都试过了,但似乎都不管用。我还尝试通过javascript将一个简单的代码应用到#home,但它不起作用。。。所以我认为javascript文件和html之间的链接有问题,也许问题出在其他地方
这里我将提供更多有用的信息。我在头部插入我的html和与不同文件的连接,也许这会有帮助。我正在创建一个具有水平布局的web。它通过jquery完美地工作
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>DJ Femke</title>
<!-- JAVASCRIPT CONNECTIONS -->
<script type="text/javascript" src="_js/jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="_js/jquery.scrollTo.js"></script>
<script type="text/javascript" src="_js/scroll_resize.js"></script>
<script type="text/javascript" src="_js/onload.js"></script>
<!-- CSS CONNECTIONS -->
<link type="text/css" rel="stylesheet" href="_css/style.css" media="screen"/>
</head>
<body>
<div id="wrapper">
<div id="mask">
<div id="booking" class="item">
<a name="item1"></a>
<div class="content">item1
<a href="#booking" class="panel">1</a> |
<a href="#about_me" class="panel">2</a> |
<a href="#home" class="panel">3</a> |
<a href="#music" class="panel">4</a> |
<a href="#photo_video" class="panel">5</a>
<a href="#contact" class="panel">6</a>
<p>BOOKING</p>
</div>
</div>
<div id="about_me" class="item">
<a name="item2"></a>
<div class="content">about_me
<a href="#booking" class="panel">1</a> |
<a href="#about_me" class="panel">2</a> |
<a href="#home" class="panel">3</a> |
<a href="#music" class="panel">4</a> |
<a href="#photo_video" class="panel">5</a>
<a href="#contact" class="panel">6</a>
<p>ABOUT ME</p>
</div>
</div>
<div id="home" class="item" src="">
<a name="item3"></a>
<div class="content">item3
<a href="#booking" class="panel">1</a> |
<a href="#about_me" class="panel">2</a> |
<a href="#home" class="panel">3</a> |
<a href="#music" class="panel">4</a> |
<a href="#photo_video" class="panel">5</a>
<a href="#contact" class="panel">6</a>
<p>HOME</p>
</div>
</div>
<div id="music" class="item">
<a name="item4"></a>
<div class="content">item4
<a href="#booking" class="panel">1</a> |
<a href="#about_me" class="panel">2</a> |
<a href="#home" class="panel">3</a> |
<a href="#music" class="panel">4</a> |
<a href="#photo_video" class="panel">5</a>
<a href="#contact" class="panel">6</a>
<p>MUSIC</p>
</div>
</div>
<div id="photo_video" class="item">
<a name="item5"></a>
<div class="content">item5
<a href="#booking" class="panel">1</a> |
<a href="#about_me" class="panel">2</a> |
<a href="#home" class="panel">3</a> |
<a href="#music" class="panel">4</a> |
<a href="#photo_video" class="panel">5</a>
<a href="#contact" class="panel">6</a>
<p>PHOTO AND VIDEO</p>
</div>
</div>
<div id="contact" class="item">
<a name="item6"></a>
<div class="content">item6
<a href="#booking" class="panel">1</a> |
<a href="#about_me" class="panel">2</a> |
<a href="#home" class="panel">3</a> |
<a href="#music" class="panel">4</a> |
<a href="#photo_video" class="panel">5</a>
<a href="#contact" class="panel">6</a>
<p>CONTACT</p>
</div>
</div>
</div>
</div>
</body>
</html>
也许它很方便。。。我的文件结构:
编辑:哦,是的,另一张海报是对的。我没有检查随机数的生成。。。但其余的仍然适用 我不使用jquery 但是,在常规情况下,它更像: **警告,未测试代码**
var imgs = ["foo1.jpg", "foo2.jpg"];
var idx = Math.floor(Math.random() * imgs.length)
var img = imgs[idx];
var el = document.getElementById('home');
el.style.backgroundImage="url('" + img + "')";
通过javascript设置背景图像有两种选择。您可以只设置
background image
CSS属性,也可以将字符串添加到一起,形成background
属性的整个字符串
备选案文1:
$(window).load(function() {
var randomImages = ['img1','img2','img3'];
var rndNum = Math.floor(Math.random() * randomImages.length);
var url = 'url(_img/bg_array/' + randomImages[rndNum] + '.jpg)';
$('#home').css('background-image', url);
});
备选案文2:
$(window).load(function() {
var randomImages = ['img1','img2','img3'];
var rndNum = Math.floor(Math.random() * randomImages.length);
var url = 'url(_img/bg_array/' + randomImages[rndNum] + '.jpg)'
$('#home').css({
'background': url + ' no-repeat center center fixed',
'-webkit-background-size': 'cover',
'-moz-background-size': 'cover',
'-o-background-size': 'cover',
'background-size': 'cover'
});
});
您还缺少一个结束语)代码>在完成$(窗口).load()语句的代码末尾
第二个选项的工作示例:+1用于使用类-我会选择选项1-将不同语言/脚本语言的不同代码尽可能地分开是一种很好的风格。您好jfriend00。这就是我需要的答案。现在它对我不起作用。我在尝试第二种选择。你测试过这个代码吗?我也尝试了第一种选择,但没有成功。一切似乎都是正确的。。。我尝试了不同的url路径,这不是问题所在。我的图像命名正确。。。它经过测试了吗?@DanielRamirez Escudero-我注意到第二个选项缺少一个空格,所以我在答案中添加了这个空格。如果这两个都不起作用,那么这与你的特殊情况有关。如果您为我们提供了一个实际的网页,我们可以自己查看以进行调试。如果您不这样做,那么您将不得不自己进行故障排除。我的猜测是,要么是脚本错误导致某些内容无法执行,要么是没有构建正确的图像路径。除非你给我们一个网页链接,否则我们不能在这里测试这些东西。@DanielRamirez Escudero-我还在你的原始代码中发现另一个javascript语法错误,适用于我提供的两个选项。您缺少一个结束语)代码>位于$(窗口)的末尾。加载
代码。您确实应该检查错误控制台中的脚本错误。我添加了第二个选项的工作示例:。如果您修复了脚本或路径错误,它将正常工作。
var imgs = ["foo1.jpg", "foo2.jpg"];
var idx = Math.floor(Math.random() * imgs.length)
var img = imgs[idx];
var el = document.getElementById('home');
el.style.backgroundImage="url('" + img + "')";
$(window).load(function() {
var randomImages = ['img1','img2','img3'];
var rndNum = Math.floor(Math.random() * randomImages.length);
var url = 'url(_img/bg_array/' + randomImages[rndNum] + '.jpg)';
$('#home').css('background-image', url);
});
$(window).load(function() {
var randomImages = ['img1','img2','img3'];
var rndNum = Math.floor(Math.random() * randomImages.length);
var url = 'url(_img/bg_array/' + randomImages[rndNum] + '.jpg)'
$('#home').css({
'background': url + ' no-repeat center center fixed',
'-webkit-background-size': 'cover',
'-moz-background-size': 'cover',
'-o-background-size': 'cover',
'background-size': 'cover'
});
});