2012-11-20 21 views
0

我想随机化三个字体,字体大小,字体重量的数组。 然后我需要在一个div中显示三个数组的结果,类名为randomFont。 因此,每次使用类randomFont时,它将返回一个随机字体/大小/重量。在JavaScript/jQuery中随机化3个数组

关于如何去做这件事的任何想法?

假设我在每个数组中有3个变量。

  • 阵列1(字体)>字体1,字体2,字体3
  • 阵列2(字体重量)>粗体,光,100
  • 阵列3(字体大小)> 12像素,24像素, 100px

然后,我想要一个数组从每个中随机选择一个,并将输出显示在一个名为randomFont的div>类中。

我该怎么做?

回答

1

你可以看到在http://jsfiddle.net/CrossEye/bwsvy/

var fonts = ['Arial', 'Helvetica', 'Georgia', 'Tahoma', 'Verdana']; 
var weights = ['normal', 'bold', 'lighter']; 
var sizes = ['16px', '20px', '24px', '36px', '40px']; 

var choose = function(arr) { 
    return arr[Math.floor(Math.random() * arr.length)]; 
}; 

// ... 
var text = choose(sizes) + ' ' + choose(weights) + ' ' + choose(fonts); 
output.innerHTML = '<div class="randomFont">' + text + '</div>'; 
// e.g. '24px bold Tahoma' 
+0

太棒了,谢谢! – user1106295

+0

问题:是否有可能让三个变量指向类?例如var fonts = ['.font1','.font2','.font3','.font4','.font5']; 也有可能让这个功能在页面加载时自动运行,只需要找一个名为“output”的div标签?而不是创建一个?真的希望你能帮上忙。 – user1106295

+0

是的,这将是很有可能的。你有没有尝试过其中之一?您是否在网页上搜索了网页加载问题? –

2

实际上并不需要jQuery,但是应该这样做,因为您没有提供任何示例代码,我不得不补充它,但这应该会让您顺其自然。

var item = items[Math.floor(Math.random() * items.length)];

为每个阵列做到这一点。

+0

一个方法,我觉得你得到一个随机元素,但不能随机排列? –

+0

可以说我在每个数组中有3个变量。 阵列1(字体)>字体1,字体2,字体2 阵列2(字体重量)>粗体,光,100 阵列3(字体大小)> 12像素,24像素,100像素 然后我想的一个数组从中随机选择一个,并将输出显示在名为randomFont的div>类中。 – user1106295

0

目前尚不清楚随机化阵列意味着什么。如果你有固定的值列表,并要重新安排他们在的地方,那么你想有一个洗牌的功能,这样的事情:

var shuffle = function(arr) { 
    for (var i = arr.length; i--;) { 
     var j = Math.floor(Math.random() * (i + 1)); 
     var temp = arr[i]; 
     arr[i] = arr[j]; 
     arr[j] = temp; 
    } 
    return arr; 
} 

这可能是部分答案,你在找什么,但对于我来说,总体而言,我并不清楚。