Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Лагает animation на ios (https://javascript.ru/forum/jquery/77871-lagaet-animation-na-ios.html)

Noga_programmista 27.06.2019 16:10

Лагает animation на ios
 
Меняю ширину блока (в 1вом положении он является просто блоком на странице, во 2ром всплывашкой на весь экран с возможностью прокрутки только его, но не всей страницы) следующим способом:

elem.animate({ top: 0, left: 0, right: 0, bottom: 0, padding: '26px' }, { duration: 300, queue: false, complete: function () { body.css('position', 'fixed') } });


Данная реализация подлагивает в сафари( в принципе то что я делаю в колбэке, тоже делается только для сафари, там почему-то прокрутка работает насквозь блока, который поверх body, но 'то вроде как проблема известная и решаемая с помощью велосипеда(как по мне). По моим ощущениям, именно из за fixed на боди лаги становятся больше... ).

Вопрос, можно ли как то сделать данную анимацию плавной? или вообще предложите другие способы проанимировать?

Noga_programmista 28.06.2019 13:17

Вообщем эта тема отпадает, решили пока без анимаций делать, подождём до лучших времён(как станем поумнее)! Но тут появился новый вопрос, как отменить вертикальный скролл на ios?! может кто-то делал подобное что-то?)

Noga_programmista 28.06.2019 16:51

Вообщем как я разрешил данную ситуацию:
в том моменте где у меня происходит 'touchstart' на определенном элементе, я вырубаю стандартную прокрутку window:
let fun_pls = function (e) {
    console.log(1); 
    e.preventDefault()
}
window.addEventListener('touchmove', fun_pls(e), { passive: false });


Стоит отметить "passive: false", поскольку "e.preventDefault()" не работает в пассивных евентах, пришлось его переводить!

Дальше, в 'touchend' вешаю :

window.addEventListener('touchmove', { passive: true });


В итоге, при скролинге галереи блоков, вертикальный ( как и горизонтальный по идее ) скроллинг не происходит!

P.S. Код да и данное смс пишу второпях, поскольку и так уже задержался, и пора домой!!)
P.S.S Не представляю как бы мучился на выходных, если бы не решил эту задачку( не утверждаю что самый правильный вариант решения, но всеравно приятно) )
P.S.S.S Напомню, что проблема была именно реализации данного функционала на IOS Safari


Часовой пояс GMT +3, время: 04:07.