Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.08.2020, 15:24
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,702

Сообщение от laimas
в отладчике то все они прекрасно видны.
Нет гарантии, что удастся пройти по всем веткам кода, где есть
element.style.xxx = 'yyy'
Ответить с цитированием
  #12 (permalink)  
Старый 07.08.2020, 15:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

voraa,
ну в общем-то в отладчике можно просмотреть и все события у элементов (ну или почти все, в FF это сразу видно), а визуально видя, какой элемент такой стиль получает, можно его выделить и узнать все, включая и тех кто что-то изменил.
У меня просто сложилось впечатление, что вообще неизвестно есть ли такое на странице, ибо спрашиваю что и где, а в ответ ....
Ответить с цитированием
  #13 (permalink)  
Старый 07.08.2020, 15:35
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,702

У меня сложилось впечатление, что есть страница, сделанная кем-то, css и скрипты, написанные кем-то, и надо просто дополнительно что то сделать с элементом(тами), когда по какой то причине меняется их размер.
resizeObserver не повесить, т.к. размер (видимый) меняется и при трансформации, а он на это не реагирует.
Ответить с цитированием
  #14 (permalink)  
Старый 07.08.2020, 15:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от voraa
У меня сложилось впечатление, что есть страница, сделанная кем-то, css и скрипты
Согласен, может быть и так, но тогда так и нужно было ответить, а то "часть кода есть, вот тут знаю, а далее черная дыра".
Ответить с цитированием
  #15 (permalink)  
Старый 07.08.2020, 18:58
Интересующийся
Отправить личное сообщение для Diox Посмотреть профиль Найти все сообщения от Diox
 
Регистрация: 17.02.2014
Сообщений: 14

Сообщение от voraa Посмотреть сообщение
Может попробовать window.requestAnimationFrame задействовать.
Раз написал:
Цитата:
А вот как мне сделать, чтобы функция работала если в div блоке slick-track изменяется стиль
Два написал:
Цитата:
Вопрос же именно в этом - Что отвечает за изменение стиля
Даже пояснил:
Цитата:
Я для этого и привел пример, что window.onresize - определяет, были ли изменения в размерах окнах и если были - тогда исполняет функцию.

Мне же нужно: определить, были ли изменения в стиле блока slick-track и если были - то произвести функцию.
Ещё раз объяснил вопрос:
Цитата:
Ещё раз: стиль у блока задается произвольно, он зависит от других параметров, других скриптов, мне нужно только определить, были эти изменения или нет - не важно какие изменения (хотя и пример уже дал).
Вы же отвечаете зачем-то про окно и анимацию...

Сообщение от laimas Посмотреть сообщение
Здрастье, приехали. Кто же вам тогда ответит, чего надо?

Если вот это window.onresize = function(event) { ... изменит на вызов именованной функции, то ее можно будет вызывать из чего угодно. Допустим, пусть имя функции этой "a". То есть в событии изменения окна вызывается она.
Ещё один гений, просто гений, вопрос вообще не про окна. Это пример того, как простой строчкой учитываются изменения.

Сообщение от laimas Посмотреть сообщение
Но сам то стиль по своему хотению не изменится
Я не знаю уже как объяснять, то ли я не по русски пишу, то ли читать не умеете...

Цитата:
Ещё раз: стиль у блока задается произвольно, он зависит от других параметров, других скриптов, мне нужно только определить, были эти изменения или нет - не важно какие изменения (хотя и пример уже дал).
Ответить с цитированием
  #16 (permalink)  
Старый 07.08.2020, 19:05
Интересующийся
Отправить личное сообщение для Diox Посмотреть профиль Найти все сообщения от Diox
 
Регистрация: 17.02.2014
Сообщений: 14

Сообщение от voraa Посмотреть сообщение
У меня сложилось впечатление, что есть страница, сделанная кем-то, css и скрипты, написанные кем-то, и надо просто дополнительно что то сделать с элементом(тами), когда по какой то причине меняется их размер.
resizeObserver не повесить, т.к. размер (видимый) меняется и при трансформации, а он на это не реагирует.
Есть скрипт акардиона - он находится в блоке, за который отвечает другой скрипт - позволяющий перемещать эти блоки, и вот при перемещении, мне необходимо, чтоб весь акардион закрывался. При помощи кликов - этого я добился, но при помощи тача - это будет работать не правильно, так как есть внутренние действия тача, то есть, я хочу сделать функцию - основанную на действии другого скрипта. При помощи тача - блоки перемещаются и мне нужно понять, если произошло перемещение (а соответственно в стиле производятся перемены) - то необходимо выполнить функцию закрытия акардиона, но только в том случае, если это самое перемещение блоков произошло, если оно не произошло - закрывать акардион не нужно.

Соответственно скрипт должен выглядеть так:

Узнать, произошли ли перемены в блоке 1, если да - то: {
закрытие акардиона (скрипт есть)
}


Пример окна был дан именно для этого, что является переменной "изменение есть - тогда так", мне же нужно просто понять, были перемены в стиле блока или нет.
Ответить с цитированием
  #17 (permalink)  
Старый 07.08.2020, 19:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Diox
Ещё один гений
А вам, гению, ну вроде бы уже говорили о других возможностях, как то отследить анимацию, уж коли о ней речь была, собственно вы можно следить и за изменениями на странице, это MutationObserver.
Ответить с цитированием
  #18 (permalink)  
Старый 07.08.2020, 19:17
Интересующийся
Отправить личное сообщение для Diox Посмотреть профиль Найти все сообщения от Diox
 
Регистрация: 17.02.2014
Сообщений: 14

Изначально даже указал, какой стиль в основном меняется
transform: translate3d(-1746px, 0px, 0px);


Он может стать с -1746px и -1747px и 46px - по этому фиксированные данные не подходят, нужно просто "стиль изменился" и каждый раз при изменении, чтоб новый скрипт срабатывал
Ответить с цитированием
  #19 (permalink)  
Старый 07.08.2020, 19:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Diox,
я ведь не спорю, что не меняется, и вам говорили, что можно и отследить. В то же время, ведь сам то по себе он не изменится, есть то, что инициализирует это, а значит там и можно что-то выполнить. Но коли это никак по каким-то причинам, следите за изменением узла посредством MutationObserver и выполняйте в этом событии.
Ответить с цитированием
  #20 (permalink)  
Старый 07.08.2020, 19:48
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,702

Сообщение от Diox
Сообщение от voraa
Может попробовать window.requestAnimationFrame задействовать.
Раз написал:
Цитата:
А вот как мне сделать, чтобы функция работала если в div блоке slick-track изменяется стиль
Два написал:
Цитата:
Вопрос же именно в этом - Что отвечает за изменение стиля
Запоминаете, какие из интересующих вас стилей были у elem

const teststyle = () => {
// Тут проверяем не изменились ли стили у elem,
// Если изменились, делаем то, что нужно
// И перезапоминаем изменения
window.requestAnimationFrame (teststyle)
}
teststyle();

Сообщение от Diox
нужно просто "стиль изменился" и каждый раз при изменении, чтоб новый скрипт срабатывал
Вас любой стиль интересует?
Тогда только MutationObserver

Кстати, еще и class могут поменять
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
событие при изменении значения переменной Раед Общие вопросы Javascript 13 24.07.2018 18:11
Изменение текста при изменении содержимого поля input Win_D Элементы интерфейса 2 14.01.2018 00:45
Действие при окончании времени в TimeCircles SLameN Элементы интерфейса 4 15.07.2015 07:56
Действие при одновременном выборе в разных выпадающих списках Oresama Элементы интерфейса 1 28.06.2015 20:22
Добавление класса при изменении ширины браузерного окна Joannes Общие вопросы Javascript 4 07.09.2013 18:12