javascript - 使用 javascript 按下更改时执行某些操作

标签 javascript css

我编写了一些代码来生成 RGB 颜色,但它在更改后可以工作,但我希望在更改时执行此操作:

<input type="range" id="myNumber" min="0" max="255" onchange="myFunction()" value="0" />
<input type="range" id="myNumber2" min="0" max="255" onchange="myFunction()" value="0" />
<input type="range" id="myNumber3" min="0" max="255" onchange="myFunction()" value="0" />
<p id="demo">Blalalalala</p>

<script>
function myFunction() {
    var x = document.getElementById("myNumber").value;
    var y = document.getElementById("myNumber2").value;
    var z = document.getElementById("myNumber3").value;  
    document.getElementById("demo").style.transition = 'background 0.5s ease 0s';
    document.getElementById("demo").style.background = 'rgb('+x+','+y+','+z+')';
}
</script>

更新!

随着答案,我添加了一个用于不透明度的内容,如果有人需要,这里是完整的代码

 <p>R (Stands for red):
    <input type="range" id="myNumber" min="0" max="255" step="1" oninput="myFunction()" value="0" /></p>
    <p>G (Stands for green):
    <input type="range" id="myNumber2" min="0" max="255" step="1" oninput="myFunction()" value="0" /></p>
    <p>B (Stands for blue):
    <input type="range" id="myNumber3" min="0" max="255" step="1" oninput="myFunction()" value="0" /></p>
    <p>A (Stands for opacity):
    <input type="range" id="myNumber4" min="0" max="1" step="0.1" oninput="myFunction()" value="1" /></p>




    <p id="demo">sasasasa</p>

    <script>
    document.getElementById("demo").style.background = 'rgb(0,0,0,1)';
    function myFunction() {
        var x = document.getElementById("myNumber").value;
        var y = document.getElementById("myNumber2").value;
        var z = document.getElementById("myNumber3").value; 
        var a = document.getElementById("myNumber4").value;     
        document.getElementById("demo").style.transition = 'background 0.5s ease 0s';
        document.getElementById("demo").style.background = 'rgba('+x+','+y+','+z+','+a+')';
    }
    </script>

最佳答案

使用 HTML5 input事件而不是 change事件。

<input type="range" id="myNumber" min="0" max="255" oninput="myFunction()" value="0" />
<input type="range" id="myNumber2" min="0" max="255" oninput="myFunction()" value="0" />
<input type="range" id="myNumber3" min="0" max="255" oninput="myFunction()" value="0" />




<p id="demo">Blalalalala</p>

<script>
  function myFunction() {
    var x = document.getElementById("myNumber").value;
    var y = document.getElementById("myNumber2").value;
    var z = document.getElementById("myNumber3").value;
    document.getElementById("demo").style.transition = 'background 0.5s ease 0s';
    document.getElementById("demo").style.background = 'rgb(' + x + ',' + y + ',' + z + ')';
  }
</script>

检查browser compatibility of input event .

关于javascript - 使用 javascript 按下更改时执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41583788/

相关文章:

JavaScript:如何从 5 维数组中删除 2 列?

javascript - 选择下拉 'no/other' 值时清除相应的文本输入

html - 如何更改调整大小属性图标和悬停光标

css - 内联 block 在图片库中不起作用

javascript - 悬停时的 jQuery 工具提示

javascript - 如何在 JavaScript 代码中获取数据属性的值?

javascript - 关闭浏览器时执行一些功能

javascript - 如何在本地存储数据?

javascript - jQuery 悬停仅适用于 Internet Explorer

jquery - 如何选择具有特定CSS类的第三个div