【问题标题】:Random image with javascript带有javascript的随机图像
【发布时间】:2016-01-27 10:59:07
【问题描述】:

在完全不知道 javascript 的情况下,我以某种方式创建了随机图像生成器:

<script language="JavaScript"><!-- 
document.write("<img src=\"image-"+Math.floor(Math.random()*12+1)+".jpg\" />");
//--></script>

我确实显示了应有的随机图像,但有一些限制,所以我需要你的帮助。

  1. 有时我有超过 9 张图片用于某些页面,它们的名称是“mad-01”、“mad-02”...“mad-11”以保持它们的排序,但上面的代码无法显示带有 0 的图片在第二个数字之前。我在第二个数字之前命名了带和不带 0 的图像:“mad-01”、“calm-1”。如何解决?还是只从图像中删除 0 更好?
  2. 有没有办法以这种方式编写此代码,这样我就不需要继续编写要显示多少张图片了?

我希望这段代码尽可能短,这就是我不使用数组的原因。

【问题讨论】:

    标签: javascript image random repeat


    【解决方案1】:
    1. 我会说从文件名中删除 0 将是最简单的解决方案。看你有没有需要。

    2. 不知道你在这里的意思。 JavaScript 无法自行检测文件系统中有多少图像。如果您使用某种服务器端语言,它可能具有计算文件的功能,然后您可以将该值打印到 JavaScript 代码中。


    如果你想在文件名中保留前导零,你可以这样:

    <script language="JavaScript"><!-- 
    var number = Math.floor(Math.random()*12+1);
    if(number < 10) number = "0" + number;
    document.write("<img src=\"image-"+number+".jpg\" />");
    //--></script>
    

    【讨论】:

    • 1.这不是真正需要的东西,但拥有它会很好。 2. 我明白了。所以我可以跳过这个。
    • 更新了答案,建议如何处理前导零。
    • 感谢您的回复。现在使用您的代码,它仅在图像有 2 位时才有效,而 1 则不起作用,因为它总是尝试在 1 位图像之前输入 0。
    • 嗯,是的,这就是重点。 JavaScript 代码不知道图像名称是否包含前导 0,因此您必须选择您想要的。如果要保留自己的代码,则必须从文件名中删除前导 0。如果你想保持前导 0,你必须使用我的代码,如果数字是 1-9,所有文件名都必须有前导 0。
    • 哦,我明白了。我一直在怀疑,现在我确定了。我会坚持我的代码。我感谢您的帮助。谢谢。
    猜你喜欢
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    相关资源
    最近更新 更多