Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие onmouseover (https://javascript.ru/forum/events/84104-sobytie-onmouseover.html)

ureech 04.06.2022 10:01

Вернее класс добавляется только в classList так
if(!obj[0].classList.contains('on')){
                            obj[0].classList.add('on');
                            //console.log(obj[0])
                        }

Но в html тег не добавляется

ureech 04.06.2022 10:25

Понятно. Оказывается добавляется, но не к тому элементу,какому надо. К последнему.

ureech 04.06.2022 10:34

С этим разобрался. Нужно было инициировать объект при mouseover

ureech 04.06.2022 11:04

С mouseover вроде решил.
$(list[i]).on("mouseover", function (e) {   
                        var obj = $(this).parent();    
                        if(!this.classList.contains('icon'))return;
                        if(!obj[0].classList.contains('on')){
                            obj[0].classList.add('on');                           
                        }
                    });

На mouseout теперь застрял)

ureech 04.06.2022 13:20

Ну вроде разобрался. Проблема в том, что после ухода курсора с блока тот не хочет пропадать.

ureech 04.06.2022 15:14

Так и не победил. Повесил на клик по body. Вот весь код.
<style>
.list
{
  opacity: 0;
} 
.on .list{
transition: cubic-bezier(1,0,0,0) 1s;
    opacity: 1;
}
</style>
 
<div class="icons">
<div class="icon"><img... /></div>
<div class="list " id = "list_id">....</div>
</div>


var list = document.querySelectorAll('.icons');
        var count = list.length;
        var i = 0;
        for (i; i < count; i++) {
            var obj = list[i].children;// Все иконки
            $(obj[0]).on("mouseover", function (e) {
                var h6 = $(this).parent(); // Родитель выбранной иконки
                h6[0].classList.add('on'); // Делаем видимым блок

            });

            $(obj[0]).on("mouseout", function (e) {
                var h6 = $(this).parent();
                var next = $(this).next()[0] // Сам блок
                var mouse = document.elementFromPoint(e.clientX, e.clientY);
                if (mouse == next) {
                return;
                }
                else if ($(this)[0]) {
                    h6[0].classList.remove('on');
                }

            });
        }
        $('body').on("click", function (e) {
            $('.icons').removeClass('on');
        })


Часовой пояс GMT +3, время: 12:30.