Use Case: - Если пользователь прокручивает внутренний div, он не должен прокручивать внешний div, как только достигнут внутренний div.Невозможно остановить прокрутку внешнего div, когда конец внутреннего div достиг
Следующий код работает отлично, если внутренний div уже достиг конца. т. е. событие touchstart/touchmove запускается после завершения внутреннего div.
Но в случае, если я не поднимаю прикосновение и держу прокрутку, и если конец внутреннего div достигнут в этом процессе, он начинает прокручивать внешний div.
$('body').find('.scrollableDiv').on(
{
'touchstart' : function(e) {
touchStartEvent = e;
},
'touchmove' : function(e) {
e.stopImmediatePropagation();
$this = $(this);
if ((e.originalEvent.touches[0].pageY > touchStartEvent.originalEvent.touches[0].pageY && this.scrollTop == 0) ||
(e.originalEvent.touches[0].pageY < touchStartEvent.originalEvent.touches[0].pageY && this.scrollTop + this.offsetHeight >= this.scrollHeight)){
e.preventDefault();
}
},
});
Как остановить прокрутку, как только достигнут конец внутреннего div? Я пытаюсь добиться этого в браузере на Android-устройстве. Может ли кто-нибудь помочь мне в этом отношении?
ПРИМЕЧАНИЕ. Пользователь должен иметь возможность прокручивать внешний div.
Заранее спасибо.
Это ударяет меня как плохая идея. Вы пытаетесь написать код, который принадлежит самому веб-браузеру, чтобы изменить пользовательский интерфейс браузера на вашем сайте таким образом, который несовместим с тем, как он работает на других сайтах, отключив функцию, которую может пожелать пользователь , –
Прошу прощения, если я не уточню.На самом деле я пытаюсь дать функциональность, в которой пользователь может прокручивать оба div независимо, а прокрутка внутреннего div никогда не должна прокручивать внешний div. Рассмотрим ситуацию, когда пользователь выполнил быструю прокрутку во внутреннем div, что приведет к прокрутке страницы, как только внутренний div достигнет конца, а затем пользователь должен прокрутить страницу вверх, чтобы довести внутренний div до видимого Посмотреть. Разве это не плохой UX? – Sashwat
Mozilla, похоже, согласен с вами, так как Firefox не делает этого на любой платформе, либо на рабочем столе (с помощью колеса), либо на мобильном телефоне (пальцем). Apple, похоже, не согласна с вами. Я думаю, что, вероятно, там, где решение принадлежит, и попытка заставить его работать по-разному на разных сайтах, само по себе является плохим UX. –