如何通过文本输入更改SVG行的不透明度?

时间:2019-08-21 09:32:59

标签: javascript html svg snap.svg

我正在尝试通过文本输入更改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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

在输入标签上设置一个EventListener,并将不透明度设置为文本输入的值。

有关事件侦听器的文档: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;
  }
};