<div class="container">
Normal input <input type="number">
No spinner <input class="input-no-spinner" type="number">
No mousewheel (jQuery) <input class="input-no-mousewheel-jquery" type="number">
No mousewheel (native Javascript) <input class="input-no-mousewheel-js" type="number">
No mouse wheel (native JavaScript - event delegation) <input class="input-no-mousewheel-delegation" type="number">
</div>
/* decorate and format normal styles for display */
body {
font-family: sans-serif;
font-size: 16px;
}
input[type="number"] {
background-color: #fff;
border: 1px solid #bbb;
border-radius: 3px;
font-size: 1rem;
margin-bottom: 15px;
padding: 5px;
width: 100%;
}
.container {
display: block;
margin: 10px auto;
width: 80vw;
}
@media (min-width: 1200px) {
.container {
width: 1000px;
}
}
/* end decorate page styles */
/* no spinner CSS */
.input-no-spinner {
appearance: textfield; /* for old Firefox */
appearance: textfield;
}
/* no spinner for webkit only (Chrome, Edge, Safari) - no standards */
.input-no-spinner::outer-spin-button,
.input-no-spinner::inner-spin-button {
appearance: none;
margin: 0;
}
$('.input-no-mousewheel-jquery').on('wheel', function(e){
e.preventDefault();
});
let inputNoMousewheel = document.querySelector('.input-no-mousewheel-js');
if (inputNoMousewheel) {
inputNoMousewheel.addEventListener('wheel', (e) => {
e.preventDefault();
});
}
document.addEventListener('wheel', (e) => {
let thisElement = e.currentTarget.activeElement;
if (thisElement.classList.contains('input-no-mousewheel-delegation')) {
e.preventDefault();
}
}, {
// required passive false ( https://stackoverflow.com/a/37721906/128761 )
passive: false
});
This Pen doesn't use any external CSS resources.