2014-11-21 43 views
1

我之前發佈要求從列表中產生一個隨機壁紙的方式,但我現在想知道,而不是'圖像/ bg-N.png'(N是一個號碼),我可以有這樣的線?實現JavaScript和文本到一個URL

<script type="text/javascript"> 
    var images = ['1', '2', '3', '5', '6', '7', '8', '9', '10']; 
    document.getElementsByClassName('mainview')[0].style.backgroundImage = 'url('"images/bg-" + images[Math.round(Math.random() * images.length)] + ".png"')'; 
</script> 

這不起作用,因爲我對javascript本身知之甚少。如果有人能夠爲我解決這個問題,我將非常感激!

+0

謝謝@Asaph,仍然不知道如何使用一些計算器的編輯 – 2014-11-21 23:15:35

+1

沒錯哈哈。我想要實現其他鏈接到您製作的隨機發生器的其他東西:) – 2014-11-21 23:25:40

回答

0

你不需要額外的引號。

<script type="text/javascript"> 
    var images = ['1', '2', '3', '5', '6', '7', '8', '9', '10']; 
    document.getElementsByClassName('mainview')[0].style.backgroundImage = 'url(images/bg-' + images[Math.round(Math.random() * images.length)] + '.png)'; 
</script> 
0

至於我可以看到它是一個簡單的語法問題:

<script type="text/javascript"> 
    var images = ['1', '2', '3', '5', '6', '7', '8', '9', '10']; 
    document.getElementsByClassName('mainview')[0].style.backgroundImage = "url('images/bg-" + images[Math.round(Math.random() * images.length)] + ".png')"; 
</script> 
+0

謝謝!再一次,我對js的瞭解很少,所以括號,加號和引用對我來說都有些困惑! – 2014-11-21 23:18:20

+0

沒問題。它只是與引擎解釋字符串的方式有關。你從一個報價開始,它不會結束,直到它讀取另一個相同類型的沒有在其前面的反斜槓(\\)的報價爲止。 – 2014-11-21 23:24:04

1

我建議使用從一個範圍而不是陣列的整數...

var bg_min = 1; 
 
var bg_max = 10; 
 
var bg_url = 'images/bg-_.png'; 
 
var bg_replace = '_'; 
 
var bg_rand = Math.floor(Math.random() * (bg_max - bg_min + 1)) + bg_min; 
 
var bg_image = bg_url.replace(bg_replace, bg_rand); 
 

 
document.getElementsByClassName('mainview')[0].style.backgroundImage = "url('"+bg_image+"')"; 
 

 
// remove the following line in your actual page 
 
document.getElementsByClassName('mainview')[0].innerHTML = bg_image;
<div class="mainview"></div>

非數值圖像I將從陣列選擇一個隨機元素的全路徑(所以你可以使用不同於.png和不同位置的擴展名)...

var bg_images = [ 
 
    'images/bg-1.png', 
 
    'images/bg-2.png', 
 
    'images/bg-3.png', 
 
    'images/bg-4.png', 
 
    'images/bg-5.png', 
 
    'http://fakeimg.pl/1/ff0000/', 
 
    'http://fakeimg.pl/2/ffff00/', 
 
    'http://fakeimg.pl/3/00ff00/', 
 
    'http://fakeimg.pl/4/00ffff/', 
 
    'http://fakeimg.pl/5/0000ff/' 
 
]; 
 

 
var random_bg_image = bg_images[Math.floor(Math.random()*bg_images.length)]; 
 

 
document.getElementsByClassName('mainview')[0].style.backgroundImage = "url("+random_bg_image+")";
<div class="mainview" style="width:300px;height:100px;"></div>

+0

爲什麼要替換當我們已經有兩半弦?另外,我認爲OP希望能夠使它使用自定義的非數字隨機化(從我讀的原文是數字,這是OP的mod) – 2014-11-21 23:41:30

+0

doh!我讀了 - 'images/bg-N.png'(N是一個數字) - 在看到「之前」而不是「 – DaveAlger 2014-11-21 23:46:00

相關問題