认为这样可行,但看不出我出错的地方。只是不输出生成的数字,而是默认为0.变量没有更新。
想要将随机图像显示为背景,因此我创建了5个名为bg-x.jpg的图像。
然后在var imgNumber
然后使用document.write
在页面上打印出一个样式,用imgNumber
代替文件网址。
<script type="text/javascript">
var imgNumber = 0;
function randomImage(imgNumber){
var imgNumber = 1 + Math.floor(Math.random() * 5);
console.log('Random number is ' + imgNumber);
}
window.onload = randomImage;
document.write('<style type="text/css"> body{background-image:url("images/bg/bg-' + imgNumber +'.jpg");}</style>');
</script>
控制台工作正常并显示一个随机数,所以我只能假设我在这里出错了?
document.write('<style type="text/css"> body{background-image:url("images/bg/bg-' + imgNumber +'.jpg");}</style>');
答案 0 :(得分:3)
我认为您需要做的就是替换:
var imgNumber = 1 + Math.floor(Math.random() * 5);
使用
imgNumber = 1 + Math.floor(Math.random() * 5);
在你的函数中,创建并分配了一个名为imgNumber的新变量,而外部变量根本没有改变。
编辑:尝试以下操作:
<script type="text/javascript">
function randomImage(){
return 1 + Math.floor(Math.random() * 5);
}
document.write('<style type="text/css"> body{background-image:url("images/bg/bg-' + randomImage() + '.jpg");}</style>');
</script>
你甚至不需要一个功能,以下也可以使用:
<script type="text/javascript">
document.write('<style type="text/css"> body{background-image:url("images/bg/bg-' + (1 + Math.floor(Math.random() * 5)) + '.jpg");}</style>');
</script>