
Let us assume, I have a <p> element with some content in it (you can use any other element). I also have a range input element. When I drag or slide the range, the JS script should take the value of the range and use the value to set the font-size of the element (any element, it can a textbox or a textarea etc.).
Method 1
In this method, the oninput attribute will call a function (a User Defined Function) while dragging or sliding the range. The function takes an argument as size.
<body>
<input type="range" id="theRange"
min="0" max="72"
value = '18'
oninput=
"document.getElementById('fontsize').innerHTML = this.value + 'px';
changeFontSize(this.value); " />
<label id="fontsize"></label>
<p id='txt'>Hello, I am Arun Banik</p>
</body>
<script>
const changeFontSize = (size) => {
document.getElementById('txt').setAttribute('style', 'font-size: ' + size + 'px');
}
</script>Using the setAttribute() method, I can set a new font-size (or any other property) to an element.
Method 2
Here in this method, I am using an event listener to listen to any change that occurs while sliding or dragging the range element.
<body>
<input type="range" id="theRange"
min="0" max="72"
value = '18'
oninput="document.getElementById('fontsize').innerHTML = this.value + 'px'; " />
<label id="fontsize"></label>
<p id='txt'>Hello, I am Arun Banik</p>
</body>
<script>
const range = document.getElementById('theRange');
range.addEventListener('input', function() {
document.getElementById('txt').setAttribute('style', 'font-size: ' + this.value + 'px;');
});
</script>