07.08.2020, 15:24
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от laimas
|
в отладчике то все они прекрасно видны.
|
Нет гарантии, что удастся пройти по всем веткам кода, где есть
element.style.xxx = 'yyy'
|
|
07.08.2020, 15:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
voraa,
ну в общем-то в отладчике можно просмотреть и все события у элементов (ну или почти все, в FF это сразу видно), а визуально видя, какой элемент такой стиль получает, можно его выделить и узнать все, включая и тех кто что-то изменил.
У меня просто сложилось впечатление, что вообще неизвестно есть ли такое на странице, ибо спрашиваю что и где, а в ответ ....
|
|
07.08.2020, 15:35
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
У меня сложилось впечатление, что есть страница, сделанная кем-то, css и скрипты, написанные кем-то, и надо просто дополнительно что то сделать с элементом(тами), когда по какой то причине меняется их размер.
resizeObserver не повесить, т.к. размер (видимый) меняется и при трансформации, а он на это не реагирует.
|
|
07.08.2020, 15:39
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от voraa
|
У меня сложилось впечатление, что есть страница, сделанная кем-то, css и скрипты
|
Согласен, может быть и так, но тогда так и нужно было ответить, а то "часть кода есть, вот тут знаю, а далее черная дыра".
|
|
07.08.2020, 18:58
|
Интересующийся
|
|
Регистрация: 17.02.2014
Сообщений: 14
|
|
Сообщение от voraa
|
Может попробовать window.requestAnimationFrame задействовать.
|
Раз написал:
Цитата:
|
А вот как мне сделать, чтобы функция работала если в div блоке slick-track изменяется стиль
|
Два написал:
Цитата:
|
Вопрос же именно в этом - Что отвечает за изменение стиля
|
Даже пояснил:
Цитата:
|
Я для этого и привел пример, что window.onresize - определяет, были ли изменения в размерах окнах и если были - тогда исполняет функцию.
Мне же нужно: определить, были ли изменения в стиле блока slick-track и если были - то произвести функцию.
|
Ещё раз объяснил вопрос:
Цитата:
|
Ещё раз: стиль у блока задается произвольно, он зависит от других параметров, других скриптов, мне нужно только определить, были эти изменения или нет - не важно какие изменения (хотя и пример уже дал).
|
Вы же отвечаете зачем-то про окно и анимацию...
Сообщение от laimas
|
Здрастье, приехали. Кто же вам тогда ответит, чего надо?
Если вот это window.onresize = function(event) { ... изменит на вызов именованной функции, то ее можно будет вызывать из чего угодно. Допустим, пусть имя функции этой "a". То есть в событии изменения окна вызывается она.
|
Ещё один гений, просто гений, вопрос вообще не про окна. Это пример того, как простой строчкой учитываются изменения.
Сообщение от laimas
|
Но сам то стиль по своему хотению не изменится
|
Я не знаю уже как объяснять, то ли я не по русски пишу, то ли читать не умеете...
Цитата:
|
Ещё раз: стиль у блока задается произвольно, он зависит от других параметров, других скриптов, мне нужно только определить, были эти изменения или нет - не важно какие изменения (хотя и пример уже дал).
|
|
|
07.08.2020, 19:05
|
Интересующийся
|
|
Регистрация: 17.02.2014
Сообщений: 14
|
|
Сообщение от voraa
|
У меня сложилось впечатление, что есть страница, сделанная кем-то, css и скрипты, написанные кем-то, и надо просто дополнительно что то сделать с элементом(тами), когда по какой то причине меняется их размер.
resizeObserver не повесить, т.к. размер (видимый) меняется и при трансформации, а он на это не реагирует.
|
Есть скрипт акардиона - он находится в блоке, за который отвечает другой скрипт - позволяющий перемещать эти блоки, и вот при перемещении, мне необходимо, чтоб весь акардион закрывался. При помощи кликов - этого я добился, но при помощи тача - это будет работать не правильно, так как есть внутренние действия тача, то есть, я хочу сделать функцию - основанную на действии другого скрипта. При помощи тача - блоки перемещаются и мне нужно понять, если произошло перемещение (а соответственно в стиле производятся перемены) - то необходимо выполнить функцию закрытия акардиона, но только в том случае, если это самое перемещение блоков произошло, если оно не произошло - закрывать акардион не нужно.
Соответственно скрипт должен выглядеть так:
Узнать, произошли ли перемены в блоке 1, если да - то: {
закрытие акардиона (скрипт есть)
}
Пример окна был дан именно для этого, что является переменной "изменение есть - тогда так", мне же нужно просто понять, были перемены в стиле блока или нет.
|
|
07.08.2020, 19:15
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Diox
|
Ещё один гений
|
А вам, гению, ну вроде бы уже говорили о других возможностях, как то отследить анимацию, уж коли о ней речь была, собственно вы можно следить и за изменениями на странице, это MutationObserver.
|
|
07.08.2020, 19:17
|
Интересующийся
|
|
Регистрация: 17.02.2014
Сообщений: 14
|
|
Изначально даже указал, какой стиль в основном меняется
transform: translate3d(-1746px, 0px, 0px);
Он может стать с -1746px и -1747px и 46px - по этому фиксированные данные не подходят, нужно просто "стиль изменился" и каждый раз при изменении, чтоб новый скрипт срабатывал
|
|
07.08.2020, 19:26
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Diox,
я ведь не спорю, что не меняется, и вам говорили, что можно и отследить. В то же время, ведь сам то по себе он не изменится, есть то, что инициализирует это, а значит там и можно что-то выполнить. Но коли это никак по каким-то причинам, следите за изменением узла посредством MutationObserver и выполняйте в этом событии.
|
|
07.08.2020, 19:48
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от Diox
|
Сообщение от voraa
Может попробовать window.requestAnimationFrame задействовать.
Раз написал:
Цитата:
А вот как мне сделать, чтобы функция работала если в div блоке slick-track изменяется стиль
Два написал:
Цитата:
Вопрос же именно в этом - Что отвечает за изменение стиля
|
Запоминаете, какие из интересующих вас стилей были у elem
const teststyle = () => {
// Тут проверяем не изменились ли стили у elem,
// Если изменились, делаем то, что нужно
// И перезапоминаем изменения
window.requestAnimationFrame (teststyle)
}
teststyle();
Сообщение от Diox
|
нужно просто "стиль изменился" и каждый раз при изменении, чтоб новый скрипт срабатывал
|
Вас любой стиль интересует?
Тогда только MutationObserver
Кстати, еще и class могут поменять
|
|
|
|