Подтвердить что ты не робот

Скольжение по мобильной проблеме (Iphone)

Когда я сползаю вниз по моему веб-сайту на мобильном телефоне, первый слайд не работает, он выглядит как слайды в правильном направлении, а затем возвращается несколько пикселей в другое направление (но только первый слайд в NEW-направлении имеет этот выпуск). Я думаю, что лучше проверить его на мобильном телефоне: https://even-mind.com

Как я могу это исправить? Надеюсь, ты поможешь мне, ребята!

На данный момент единственное, что я нашел, это удалить owl-carousel.js script, поэтому скользящее становится гладким, но, разумеется, карусель не работает, вы можете увидеть его здесь: https://dev.even-mind.com/Even-Mind

(проверено на iphone 5)

4b9b3361

Ответ 1

Посмотрев в своем инспекторе элементов DOM, вы можете узнать, что при прокрутке позиции заголовка изменяется от absolute до fixed и, возможно, именно это и вызывает проблему.

Это заголовок перед прокруткой:

<div id="header" class="header">

и после прокрутки:

<div id="header" class="header header-fixed header-prepare">

Попробуйте изменить HTML-код и присвоить заголовку позицию fixed с самого начала:

<div id="header" class="header header-fixed">

Ответ 2

Ну, я вижу пропущенный/отсталый свиток, когда я добираюсь до слайда "МЫ".

Возможно, анимация текстов fadingIn начинается там, и это делает ее ошибкой, мои рекомендации:

1- переместите все теги <link> и <script> в нижней части вашего HTML, сразу после </body>, чтобы браузер сначала загрузил элементы HTML, а затем ссылки и скрипты.

2. Рассмотрите возможность удаления ненужных анимаций, скриптов, ссылок и т.д. Например, я не вижу смысла этих анимаций fadeIn во всем тексте. Если у вас есть их, чтобы сделать сайт не похожим на проблему, но я рекомендую использовать анимацию только для работы с пользователями. Пример: Используйте fadeIn или любой тип анимации для определенного элемента, который вы хотите видеть. Анимация заставляет глаза обратить на нее внимание, и пользователь сразу посмотрит на анимацию и обратит внимание на информацию.

3 Как всегда, минимизируйте/сжимайте свои скрипты, CSS и изображения.

4- G-zip

5- Используйте GTmetrix.com, чтобы увидеть все не так с вашим сайтом.

Я еще раз посмотрю ваш код и посмотрю, есть ли проблемы с кодом.

Edit:

Посмотрите здесь: https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Feven-mind.com%2F&tab=mobile

И здесь: https://gtmetrix.com/reports/even-mind.com/uVHRlGCl

Примечание: Ваш веб-сайт имеет размер 3,04 МБ, подумайте о том, чтобы выполнить приведенные выше инструкции + ссылки!

Ответ 3

Возможно, что в мобильном браузере есть несколько проблем с обработкой события прокрутки. Попробуйте использовать функцию debounce, чтобы ограничить количество вычислений в вашем прокрутке, чтобы сделать более плавную анимацию и, возможно, решить проблему с прокруткой.

Функция debounce ограничивает количество вызовов функции. Очень удобно для прокрутки событий и т.д.

Основной пример (из блога Дэвида Уолша): https://davidwalsh.name/javascript-debounce-function

 function debounce(func, wait, immediate) {
    var timeout;
    return function() {
        var context = this, args = arguments;
        var later = function() {
            timeout = null;
            if (!immediate) func.apply(context, args);
        };
        var callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow) func.apply(context, args);
    };
};

Вы можете использовать его на своем сайте как таковой

var handyScrollFunction = debounce(function() {
    // put your scroll/parallax in here
}, 250);

window.addEventListener('scroll', handyScrollFunction);

Вы можете играть с таймаутом, чтобы убедиться, что прокрутка по-прежнему плавная.

Ответ 4

Как вы можете видеть из представления временной шкалы DevTools, в верхней части есть много красных отметок. Это указывает на медленные кадры. Глядя на скриншоты, вы можете легко сказать что-то неприятное о прокрутке.

Взгляд немного глубже - есть 2 функции, запущенные с событием scroll:

  • Первый вызов функции из polyfill.js, который делегирует выполнение функции requestAnimationFrame (что хорошо)
  • Второй, вызов функции jQuery, который немедленно выполняет функцию.

Вид временной шкалы

Что вы можете сделать, чтобы улучшить перформанс прокрутки - делегировать функцию 2 на requestAnimationFrame. В простейшей форме вы можете пойти примерно так:

$(window).scroll(function() {
  requestAnimationFrame(someFunctionUpdatingDOM);
})

Другое дело - кэширование переменных. Функция, которая вычисляет позицию заголовка, пересекает DOM каждый раз при вызове. Поскольку операции DOM довольно дороги, лучше избегать их, если это не необходимо.

var $header = $('.header'); // traverse DOM once, cache variable for later use in function

function someFunctionUpdatingDOM() {
  $header.addClass('something');
}

Еще одна вещь, которую я заметил, - это проблемы с прокруткой на рабочем столе, вызванные обширными изображениями фонового изображения. Это вызвано изменением script background-position для достижения эффекта параллакса. Как правило, лучше использовать CSS-преобразования, такие как translate3d(), которые аппаратно ускоряются. Таким образом, браузеры могут планировать преобразования уровня (изображения) на GPU, опуская ненужные копии, делая страницу прокручиваемой плавно.

Удачи с исправлениями!