var temp = "<div class='cell' style='width:{width}px; height: {height}px; background-image: url(i/photo/{index}.jpg)'></div>";
var w = 1, html = '', limitItem = 49;
for (var i = 0; i < limitItem; ++i) {
w = 200 + 200 * Math.random() << 0;
html += temp.replace(/\{height\}/g, 200).replace(/\{width\}/g, w).replace("{index}", i + 1);
}
$("#freewall").html(html);
我在Javascript按位操作方面并不是很好,尤其是左移位运算符(&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;任何人都可以向我解释为什么开发人员使用Math.random()乘以200和加200的宽度?该代码摘自freewall.js示例代码。
答案 0 :(得分:0)
Math.random()函数返回范围[0,1)中的浮点伪随机数,从0(包括)到最大但不包括1(不包括),然后您可以缩放到您想要的范围。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
因此,作者希望它介于200到400px之间。 PX需要是整数,因此作者然后使用左移0来截断小数的右边。有关截断的详细信息,请参阅https://stackoverflow.com/a/12125432/5314386。