По сути, на моем веб-сайте есть главный раздел, внизу которого есть кнопка. Кнопка позволяет пользователю автоматически прокручивать мимо героя к следующему элементу.
Проблема: если пользователь прерывает анимацию прокруткой, в следующий раз, когда он нажмет кнопку, появится анимация прокрутки. застревает – или иногда прокручивает только на 10–50 пикселей вместо полных 100 пикселей.
HTML
JS
//Hero Arrow Scroll Button
var isScrolling = false;
let B1 = $(".B1");
$(document).on('click', '#js-hero-arrow', function() {
if (isScrolling === false) {
isScrolling = true;
scrollToElementTop(B1).then(() => {
isScrolling = false;
});
}
});
//Function to add a callback to the scroll element top
function scrollToElementTop (elem) {
const targetPosition = (elem.offset().top + elem.outerHeight(true));
window.scrollTo({
top: targetPosition,
behavior: 'smooth'
});
return new Promise(resolve => {
const scrollHandler = () => {
if (window.scrollY === targetPosition) {
window.removeEventListener('scroll', scrollHandler)
resolve();
}
}
window.addEventListener('scroll', scrollHandler)
});
}
^ Функция «scrollToElementTop» не моя. Я нашел его в stackoverflow и надеялся, что добавление обратного вызова и isScrolling решит мою проблему, но этого не произошло.
Вопросы
Почему это происходит и что я могу сделать, чтобы это исправить?
РЕДАКТИРОВАТЬ:
Без взлома это выглядело так:
//Hero Arrow Scroll Button
let B1 = $(".B1");
$(document).on('click', '#js-hero-arrow', function() {
const targetPosition = B1.offset().top + B1.outerHeight(true);
window.scrollTo({
top: targetPosition,
behavior: 'smooth'
});
});
Подробнее здесь: https://stackoverflow.com/questions/784 ... -sometimes
Почему ScrollTo иногда зависает? ⇐ Jquery
Программирование на jquery
1715800794
Anonymous
По сути, на моем веб-сайте есть главный раздел, внизу которого есть кнопка. Кнопка позволяет пользователю автоматически прокручивать мимо героя к следующему элементу.
Проблема: если пользователь прерывает анимацию прокруткой, в следующий раз, когда он нажмет кнопку, появится анимация прокрутки. застревает – или иногда прокручивает только на 10–50 пикселей вместо полных 100 пикселей.
[b]HTML[/b]
[b]JS[/b]
//Hero Arrow Scroll Button
var isScrolling = false;
let B1 = $(".B1");
$(document).on('click', '#js-hero-arrow', function() {
if (isScrolling === false) {
isScrolling = true;
scrollToElementTop(B1).then(() => {
isScrolling = false;
});
}
});
//Function to add a callback to the scroll element top
function scrollToElementTop (elem) {
const targetPosition = (elem.offset().top + elem.outerHeight(true));
window.scrollTo({
top: targetPosition,
behavior: 'smooth'
});
return new Promise(resolve => {
const scrollHandler = () => {
if (window.scrollY === targetPosition) {
window.removeEventListener('scroll', scrollHandler)
resolve();
}
}
window.addEventListener('scroll', scrollHandler)
});
}
^ Функция «scrollToElementTop» не моя. Я нашел его в stackoverflow и надеялся, что добавление обратного вызова и isScrolling решит мою проблему, но этого не произошло.
[b]Вопросы[/b]
Почему это происходит и что я могу сделать, чтобы это исправить?
РЕДАКТИРОВАТЬ:
Без взлома это выглядело так:
//Hero Arrow Scroll Button
let B1 = $(".B1");
$(document).on('click', '#js-hero-arrow', function() {
const targetPosition = B1.offset().top + B1.outerHeight(true);
window.scrollTo({
top: targetPosition,
behavior: 'smooth'
});
});
Подробнее здесь: [url]https://stackoverflow.com/questions/78479847/why-is-scrollto-getting-stuck-sometimes[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия