代码之家  ›  专栏  ›  技术社区  ›  Sarah Marie

单击按钮,用随机颜色/大小将每个字母设置为字符串样式

  •  0
  • Sarah Marie  · 技术社区  · 2 年前

    <html>
    
    <head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <title></title>
      <meta name="description" content="">
      <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>
    
    <body>
      <h1 id="header" name="header" value="">JavaScript is fun!</h1>
      <button type="button" onclick="randomizeText()">Randomize!</button>
    
      <script language="JavaScript">
        // <!--
        function generateRandomColor() {
          var colors = ["green", "blue", "red", "yellow", "cyan", "orange", "magenta"];
          var randomColor = colors[Math.floor(Math.random() * colors.length)];
          return randomColor;
        };
    
        function generateRandomFontSize() {
          var sizes = ["12px", "14px", "16px", "18px", "20px"];
          var randomSize = sizes[Math.floor(Math.random() * sizes.length)];
          return randomSize;
        };
    
        function randomizeText() {
          document.getElementById("header").style.color = generateRandomColor();
          document.getElementById("header").style.fontSize = generateRandomFontSize();
          // var newHeaderText = "";
          // for (var i = 0; i < headerText.length; i++) {
          //     var letter = headerText.charAt(i);
          //     // letter.style.fontSize.generateRandomFontSize();
          //     // letter.style.color.generateRandomColor();
          //     // newHeaderText = newHeaderText.concat(letter);
          // }
          // document.write(newHeaderText);
        };
    
        // document.getElementById("header").innerHTML = headerText;
    
        // Javascript ends here-->
      </script>
    </body>
    
    </html>
    1 回复  |  直到 2 年前
        1
  •  0
  •   IT goldman    2 年前

    split join 字符串,用一个 span 。然后可以为每个跨度指定不同的颜色。

    function generateRandomColor() {
      var colors = ["green", "blue", "red", "yellow", "cyan", "orange", "magenta"];
      var randomColor = colors[Math.floor(Math.random() * colors.length)];
      return randomColor;
    };
    
    function generateRandomFontSize() {
      var sizes = ["12px", "14px", "16px", "18px", "20px"];
      var randomSize = sizes[Math.floor(Math.random() * sizes.length)];
      return randomSize;
    };
    
    function randomizeText() {
      var elem = document.getElementById("header")
      elem.style.color = generateRandomColor();
      elem.style.fontSize = generateRandomFontSize();
    
      elem.innerHTML = span_it(elem.innerText);
      // now each letter
      var spans = elem.querySelectorAll("span");
      spans.forEach(span => span.style.color = generateRandomColor())
    
    
    };
    
    function span_it(str) {
      return str.split("").map(letter => "<span>" + letter + "</span>").join("")
    }
    <h1 id="header" name="header" value="">JavaScript is fun!</h1>
    <button type="button" onclick="randomizeText()">Randomize!</button>