#javascript
Вопрос:
Итак, я пытаюсь отключить событие прокрутки, когда пользователь наводит курсор на контейнер, в SO есть некоторые решения, но они используют jQuery, и ни одно из них, похоже, не работает, или это не то решение, которое я ищу. Я не хочу отключать полосу прокрутки, так как это может привести к плохому взаимодействию с пользователем (полоса прокрутки приводит к увеличению/уменьшению ширины контейнеров). Есть ли какой-либо способ добиться этого с помощью js? Например,
<body>
<div onScroll={()=> }>Container</div>
Content here
</body>
Ответ №1:
это ?
const scroll_stopper = document.querySelector('#StopSrollonHover')
scroll_stopper.onmouseover = () =>
{
document.body.classList.add('noScroll')
}
scroll_stopper.onmouseout = () =>
{
document.body.classList.remove('noScroll')
}
.noScroll {
overflow: hidden !important;
}
body {
height: 200vh;
}
#StopSrollonHover {
display : block;
margin-top : 25vh;
height : 100px;
background : yellow;
}
<div id="StopSrollonHover"> </div>
Комментарии:
1. Я действительно ищу способ добиться этого с помощью JS, мне не очень нравится решение с помощью CSS
2. @User123123 Почему ? у каждой части есть роль, которая дополняет другую. Тело HTML создано для представления полезного контента, javascript создан для добавления взаимодействия, а css создан для обработки презентации. Это представляет собой форму зрелости в проектировании систем. Вы бы хотели, чтобы мы вернулись в те дни, когда все было перепутано?