Проблема может возникать из-за того, что событие onClick не срабатывает во время активной прокрутки из-за браузерной оптимизации. Во время прокрутки браузер может приостанавливать обработку событий onClick, чтобы избежать конфликтов между прокруткой и нажатием кнопки.
Чтобы исправить эту ситуацию, можно воспользоваться другим событием, которое будет срабатывать и во время активной прокрутки, например, событием onmousedown или onmouseup. Когда это событие срабатывает, можно проверить позицию курсора и принять решение, что делать: продолжить прокрутку или обработать клик на кнопку.
Пример кода на JavaScript:
```javascript
var isScrolling = false;
window.addEventListener('scroll', function() {
isScrolling = true;
});
document.getElementById('button').addEventListener('mousedown', function(event) {
if (!isScrolling) {
// выполнить действия при клике на кнопку
}
});
document.getElementById('button').addEventListener('mouseup', function(event) {
isScrolling = false;
});
```
В этом примере флаг isScrolling изменяется на true при активной прокрутке, и на false при ее остановке. Кнопка имеет обработчики событий onmousedown и onmouseup, которые проверяют значение флага isScrolling. Если прокрутка активна, клик на кнопку не будет обработан.