Я пытаюсь запустить прослушиватель событий mouseover
, только когда завершится переход css. Я попытался предупредить случайное сообщение, когда css-переход завершается, и он работает по назначению (показывается только сообщение, когда оно заканчивается). Но по какой-то причине событие mouseover
работает еще до завершения перехода.Прослушивание прослушивателей событий внутри прослушивателя событий перехода?
Ниже представлен мой javascript. Спасибо заранее, ребята.
mapContainer.addEventListener("transitionend", function(){
mapContainer.addEventListener("mousemove", function(e){
if(e.clientX >= 200 && e.clientX <= 600){
removeClass(mapContainer, "map-right");
addClass(mapContainer, "map-left");
} else if (e.clientX >= 900){
removeClass(mapContainer, "map-left");
addClass(mapContainer, "map-right");
} else {
removeClass(mapContainer, "map-left");
removeClass(mapContainer, "map-right");
}
});
});
ОБНОВЛЕНИЕ: Я использовал хакерский хакер Z-Index, который неожиданно работает ... по крайней мере, для того, чего я пытаюсь достичь. Не уверен, что это хорошо на практике. Но в основном я применяю Z-индекс 0 на контейнере карты в CSS, и когда контейнер активен, я использую setTimeout() для увеличения Z-индекса и устанавливаю интервал до 3 секунд, чтобы Z-индекс не делал ' t, пока не закончится переход.
Javascript
setTimeout(function(){
campaignContainer.style.zIndex = "3";
mapContainer.style.zIndex = "3";
}, 3000);
CSS
.map-container {
height: 100%;
opacity: 0;
position: absolute;
transform: scale(2) rotate(30deg);
transition: all 1.2s linear;
width: 100%;
z-index: 0;
}
Вы хотите запустить событие (имитировать/вызвать событие mouseover) или вы хотите прослушивать событие mouseover на узле только после того, как был запущен 'animationend' (так что слушайте' mouseover' только после завершения анимации)? –
эй давид! Я хочу прослушать событие mouseover ПОСЛЕ завершения анимации :) Должен ли я использовать 'animationend' вместо' transitionend'? Я использую переход в CSS, а не анимацию с ключевыми кадрами ** EDIT ** просто попробовал «анимацию», и он не работал – giantqtipz
'addEventListener' делает то, что он говорит; он добавляет слушателя событий. Этот слушатель прослушивается с момента его добавления до выгрузки страницы или вызывается ['removeEventListener'] (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener). Если этот переход выполняется несколько раз, вы добавляете несколько слушателей к одному и тому же событию. Вам понадобится способ удаления прослушивателя событий, когда вы больше не хотите его запускать. –