【问题标题】:How can i change the opacity of my SVG line with a text input?如何使用文本输入更改 SVG 行的不透明度?
【发布时间】:2019-12-26 13:18:29
【问题描述】:

我正在尝试使用文本输入更改我的 SVG 行的不透明度,但我找不到任何解决该问题的方法。

我正在尝试更改此 var 中的不透明度。我的整个代码都在下面

我做了一切:D

    <script src="snap.svg-min.js"></script>
    <script>
        window.onload = function () {
            var s = Snap("#iconDiv");
            Snap.load("Entwurf.svg", function(f) {

               var L_KOM_AUT = f.select("#L_KOM_AUT");
               L_KOM_AUT.attr({
                   fill: '#101010',
                   opacity:0.00001,
                   });


            s.append(f);
            });          
        };
    </script>
</head>
<body>
    <div class="input">
        <label for="mail">Opacity:</label>
        <input type="text" name="opacity" autocomplete="off">
    </div>

    <div id="iconDiv"></div>        
</body>

【问题讨论】:

    标签: javascript html svg snap.svg


    【解决方案1】:

    试试这个代码:

    <svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
      <defs>
        <linearGradient id="gradient" x1="0%" y1="0%" x2="0" y2="100%">
          <stop offset="0%" style="stop-color:skyblue;" />
          <stop offset="100%" style="stop-color:seagreen;" />
        </linearGradient>
      </defs>
      <rect x="0" y="0" width="100%" height="100%" fill="url(#gradient)" />
      <circle cx="50" cy="50" r="40" fill="black" />
      <circle cx="150" cy="50" r="40" fill="black" opacity="0.3" />
    </svg>

    【讨论】:

    • 感谢您的帮助,但我知道如何更改不透明度。但我问的是如何通过在文本框中输入来更改不透明度,例如:0.5,然后单击一个按钮,不透明度会自动更改
    【解决方案2】:

    在输入标签上设置一个事件监听器,并将不透明度设置为文本输入的值。

    事件监听器文档:EventTarget.addEventListener()

    像这样:

    window.onload = function () {
      var s = Snap("#iconDiv");
      Snap.load("Entwurf.svg", function(f) {
    
        var L_KOM_AUT = f.select("#L_KOM_AUT");
        L_KOM_AUT.attr({
          fill: '#101010',
          opacity:0.00001,
        });
    
        s.append(f);
      });       
    
      var textInput = document.querySelector('input');
      var svg = document.querySelector('#L_KOM_AUT');
    
      textInput.addEventListener('keyup', function() {
        svg.style.opacity = this.value;
      }
    };
    

    【讨论】:

    • 对不起,我对编码真的很陌生,我到底把这些东西放在哪里?你能在我发布的代码中显示它吗?
    • &lt;script&gt;&lt;/script&gt; 标签之间
    猜你喜欢
    • 2011-12-19
    • 1970-01-01
    • 2013-03-04
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2016-10-19
    • 2021-11-07
    相关资源
    最近更新 更多