TL; DR:Реагировать JS: onWheel кипящего stopPropagation не работает
Смотрите мое jsfiddle ссылки, где прокрутка ребенок Div вверх до нижнего/верхний не следует начинать прокрутку родителя. Я пробовал использовать e.stopPropagation() , который не работал. Так что нужно решение (без использования mixins).
Мой код:
//////////HTML CODE
<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>
////////CSS CODE
.childScroll{
max-height: 200px;
overflow-y: scroll;
background-color: white;
max-width: 200px;
margin: 0 auto;
border: 1px solid blue
}
.parentScroll {
text-align: center;
max-height: 300px;
overflow-y: scroll;
background-color: lightgreen;
padding: 10px;
}
////////JS CODE
class Hello extends React.Component {
render() {
return (
<div className='parentScroll'>
Scrollable Parent: <br /><br />
<div className='childScroll' onWheel = {(e)=>{console.log('Scrolling Me..'); e.stopPropagation();}}>
Scroll CHILD LIST:1 <br /><br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
Some text blah<br />
</div>
<div className='childScroll' onWheel = {(e)=>{console.log('Parent got scroll event');}}>
Scroll CHILD LIST:2 <br /><br />
Hi text blah<br />
Hi text blah<br />
Hi text blah<br />
Hi text blah<br />
Hi text blah<br />
Hi text blah<br />
Hi text blah<br />
Hi text blah<br />
Hi text blah<br />
Hi text blah<br />
</div>
</div>
);
}
}
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
Моя цель:
Я имею DIV какие свитки. Но, придя к вершине или внизу после прокрутки div, прокрутка начинается на самой странице, которую я не хочу. Я думаю, что это происходит из-за распространения событий, поэтому я пытаюсь остановиться в следующем порядке.
Моя реализация:
Я использую "расширяет компонент (ES6 путь)", чтобы создать свои компоненты. И я положил onWheel event listener как
Это утечка «Прокрутка меня», но я не могу прекратить распространение этого события родительскому. Не знаете, почему stopPropagation не происходит точно или эта проблема происходит из-за распространения
Я не хочу использовать библиотеки, которые использовали mixins, поэтому, пожалуйста, не предлагайте мне этот путь.
Я столкнулся с похожим/тем же решением раньше, но на этом демо, прокручивая его, как бы отскок назад, когда вы прокручиваете больше, чем его высоту. Не знаю почему !. В любом случае, поскольку, я делаю реакцию, я не мог заставить ее работать раньше. Но ваш ответ был мотивирован сделать снова, и это сработало. Спасибо :) Я также добавляю ответ. – myDoggyWritesCode