Верстаю сайт, на котором будет использовано приличное количество анимации. Так вот, необходимо поддержка старых версий браузеров. Анимация будет происходить в основном по событию. Как мне стало известно, старые браузеры не поддерживают многоступенчатые функции по событию на одном элементе. Поэтому при ресайзе окна браузера, например, нужно все функции вызывать в одном месте. Допустим, есть скрипт-слайдер. Внутри него я обычно писал вложенную функцию, которая обновляла определенные параметры для слайдера в зависимости от текущих параметров браузера и была привязана к событию risize. То есть при ресайзе, например, родительский блок менял высоту. В чем идея? - Когда эта функция вызывалась внутри этой функции, вызывался лишь маленький клочок кода, который обновлял значения переменных, используя локальные переменные, не создавая ничего и не делая переинициализацию переменных. Допустим
function slider(){
var per1 = alalslalsal;
var per2 = kakakakaka;
var per3 = jujujujujuju;
function getProp(){
per3 = kkk.offsetHeight; // При ресайзе используем переменные выше и выполняем только маленький клочок кода
}
window.addEventListener("resize",getProp);
function action(){
Работа слайдера
}
button.addEventListener("click",action);
}
window.addEventListener("load",s;ider);
Что посоветуете?)) Надеюсь понятно объяснил) Все функции, которые должные измениться при ресайзе мне нужно поместить в одну -
window.onresize = function(){
Сюда!!!!!!!!!!!!!
function1();
function2();
function3();
и т.д.
}
Вы же понимаете, что при таком вызове скрипт пересоздаст переменные, сделает перевыбор селектор, пересчитает значения и т.д. Если, например сделать флаг, что функция была запущена и не надо их заново создавать, то их почему-то не видно.