Слушатель события для того, когда элемент становится видимым?

Я создаю панель инструментов, которая будет включенной в страницу. отделение, в которое это будет включенным, примет значение по умолчанию к display:none., там способ, которым я могу поместить слушателя события на свою панель инструментов для прислушиваний, когда это становится видимым, таким образом, это может инициализировать? или я должен буду передать его переменная от содержания страницы?

Спасибо

94
задан Liam 12 July 2019 в 08:38
поделиться

2 ответа

Javascript events deal with User Interaction, if your code is organised enough you should be able to call the initialising function in the same place where the visibility changes (i.e. you shouldn't change myElement.style.display on many places, instead, call a function/method that does this and anything else you might want).

12
ответ дан 24 November 2019 в 06:08
поделиться

Есть как минимум один способ, но он не очень удачный. Вы можете просто опросить элемент на предмет изменений, подобных этому:

var previous_style,
    poll = window.setInterval(function()
{
    var current_style = document.getElementById('target').style.display;
    if (previous_style != current_style) {
        alert('style changed');
        window.clearInterval(poll);
    } else {
        previous_style = current_style;
    }
}, 100);

Стандарт DOM также определяет события мутации , но у меня никогда не было возможности их использовать, и я не уверен, насколько хорошо они » повторно поддерживается. Вы могли бы использовать их так:

target.addEventListener('DOMAttrModified', function()
{
    if (e.attrName == 'style') {
        alert('style changed');
    }
}, false);

Этот код не у меня в голове, поэтому я не уверен, что он сработает.

Лучшее и самое простое решение - это иметь обратный вызов в функции, отображающей вашу цель.

14
ответ дан 24 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: