type="range"

<input> element as "slider".

๐Ÿ”ฐ HTML โŸฉ Elements โŸฉ <input> โŸฉ

input vs. change event

oninput is similar to the onchange event. The difference is that the oninput event occurs immediately after the value of an element has changed, while onchange occurs when the element loses focus, after the content has been changed.

็ฐกๅ–ฎ่ชช๏ผŒ็•ถๆˆ‘ๅ€‘ๆ‹–ๆ›ณๆป‘ๆกฟ็š„ๆ™‚ๅ€™๏ผŒ้šจๆ™‚้ƒฝๆœƒ่งธ็™ผ oninput ไบ‹ไปถ๏ผŒไฝ† onchange ไบ‹ไปถๆ˜ฏๆ‹–ๆ›ณๅฎŒๆ”พ้–‹ๆป‘้ผ ๅพŒๆ‰ๆœƒ่งธ็™ผไธ€ๆฌกใ€‚

const {log} = console;

const control = $('#control');
const div3 = $('#div3');
const label = $('#label');
const calc = $('#calc');

// marginControl.oninput
control.addEventListener('input', (e) => {
    let x = e.target.value;
    let percent = x + '%';
    label.textContent = 'marginTop: ' + percent;
    calc.textContent = `${percent} x 200px = ${2*x}px`
    div3.style.marginTop = percent;
});

// โญ๏ธ ่‡ชๅ‹•่ท‘ไธ€ๆฌก 'oninput' event
control.dispatchEvent(new Event('input'));


// $ โญ๏ธ selector
function $(selector, parent = document){
  return parent.querySelector(selector);
}

Last updated

Was this helpful?