Гость
Эффект сбоя при наведении курсора на нижнюю часть окна
Сообщение
Гость » 30 сен 2023, 23:37
Я пытаюсь создать окно, которое расширяется при наведении и показывает продукты, я создал его, но когда я навожу на него курсор с нижней стороны, анимация при наведении дает некоторый сбойный эффект, и из него выходит только изображение. Я сделал этот эффект с помощью gsap в прослушивателе событий mouseenter и mouseleave, так что не могли бы вы, ребята, взглянуть на мой код и сказать мне, что я делаю неправильно и как мне это исправить.
Вот фрагмент, который вы, ребята, можете проверить, если понадобится.
function page2boxhover() { // box1 наведите курсор на содержимое поля var box = document.querySelector("#box1"); box.addEventListener("mouseenter", () => { gsap.to(коробка, { высота: «300 пикселей», продолжительность: 0,2, }); var img = document.querySelectorAll("#box1 img"); img.forEach(функция (e) { е.стиль.opacity = 1; е.стиль.масштаб = 1; }); }); box.addEventListener("mouseleave", () => { gsap.to(коробка, { высота: «60 пикселей», }); var img = document.querySelectorAll("#page2 .elem .box .boxContent img"); img.forEach(функция (e) { е.style.opacity = 0; е.стиль.масштаб = 0; }); }); // box2 наведите курсор на контекст блока var box2 = document.querySelector("#box2"); box2.addEventListener("mouseenter", () => { gsap.to(box2, { высота: «300 пикселей», продолжительность: 0,2, }); var img = document.querySelectorAll("#box2 .boxContent img"); img.forEach(функция (e) { е.стиль.opacity = 1; е.стиль.масштаб = 1; }); }); box2.addEventListener("mouseleave", () => { gsap.to(box2, { высота: «60 пикселей», }); var img = document.querySelectorAll("#box2 img"); img.forEach(функция (e) { е.style.opacity = 0; е.стиль.масштаб = 0; }); }); //box3 наведите курсор на содержимое поля var box3 = document.querySelector("#box3"); box3.addEventListener("mouseenter", () => { gsap.to(box3, { высота: «300 пикселей», продолжительность: 0,2, }); var img = document.querySelectorAll("#box3 .boxContent img"); img.forEach(функция (e) { е.стиль.opacity = 1; е.стиль.масштаб = 1; }); }); box3.addEventListener("mouseleave", () => { gsap.to(box3, { высота: «60 пикселей», }); var img = document.querySelectorAll("#box3 img"); img.forEach(функция (e) { е.style.opacity = 0; е.стиль.масштаб = 0; }); }); } page2boxhover(); #page2 { дисплей: гибкий; выровнять-элементы: по центру; оправдание-содержание: пространство между; высота: 100вх; ширина: 100%; дополнение: 3vw 2vw; положение: относительное; } #page2 .elem { высота: 100%; ширина: 31%; переполнение: скрыто; положение: относительное; дисплей: гибкий; выровнять-элементы: по центру; оправдание-содержание: центр; } #page2 .elem img { высота: 100%; ширина: 100%; объектное соответствие: обложка; масштаб: 1,1; } .elem .box { радиус границы: 50 пикселей; высота: 60 пикселей; ширина: 70%; позиция: абсолютная; цвет фона: #c1aaa3; } .elem .box .boxHead { отступ: 20 пикселей 0; дисплей: гибкий; выровнять-элементы: по центру; оправдание-содержание: пространство вокруг; } .boxHead h5 { размер шрифта: 12 пикселей; вес шрифта: 100; } .boxHead h5:nth-child(3) { вес шрифта: 600; } #page2 .elem .box .boxContent { дисплей: гибкий; выровнять-элементы: по центру; оправдание-содержание: центр; маржа сверху: 40 пикселей; } #page2 .elem .box .boxContent img { отступ: 10 пикселей; высота: 150 пикселей; непрозрачность: 0; масштаб: 0; переход: все 0,2 с; Два хороших партнера
МАГАЗИН ГЛАВНАЯ
МАГАЗИН КЛАДОВАЯ
МАГАЗИН ВАННА
1696106264
Гость
Я пытаюсь создать окно, которое расширяется при наведении и показывает продукты, я создал его, но когда я навожу на него курсор с нижней стороны, анимация при наведении дает некоторый сбойный эффект, и из него выходит только изображение. Я сделал этот эффект с помощью gsap в прослушивателе событий mouseenter и mouseleave, так что не могли бы вы, ребята, взглянуть на мой код и сказать мне, что я делаю неправильно и как мне это исправить. Вот фрагмент, который вы, ребята, можете проверить, если понадобится. function page2boxhover() { // box1 наведите курсор на содержимое поля var box = document.querySelector("#box1"); box.addEventListener("mouseenter", () => { gsap.to(коробка, { высота: «300 пикселей», продолжительность: 0,2, }); var img = document.querySelectorAll("#box1 img"); img.forEach(функция (e) { е.стиль.opacity = 1; е.стиль.масштаб = 1; }); }); box.addEventListener("mouseleave", () => { gsap.to(коробка, { высота: «60 пикселей», }); var img = document.querySelectorAll("#page2 .elem .box .boxContent img"); img.forEach(функция (e) { е.style.opacity = 0; е.стиль.масштаб = 0; }); }); // box2 наведите курсор на контекст блока var box2 = document.querySelector("#box2"); box2.addEventListener("mouseenter", () => { gsap.to(box2, { высота: «300 пикселей», продолжительность: 0,2, }); var img = document.querySelectorAll("#box2 .boxContent img"); img.forEach(функция (e) { е.стиль.opacity = 1; е.стиль.масштаб = 1; }); }); box2.addEventListener("mouseleave", () => { gsap.to(box2, { высота: «60 пикселей», }); var img = document.querySelectorAll("#box2 img"); img.forEach(функция (e) { е.style.opacity = 0; е.стиль.масштаб = 0; }); }); //box3 наведите курсор на содержимое поля var box3 = document.querySelector("#box3"); box3.addEventListener("mouseenter", () => { gsap.to(box3, { высота: «300 пикселей», продолжительность: 0,2, }); var img = document.querySelectorAll("#box3 .boxContent img"); img.forEach(функция (e) { е.стиль.opacity = 1; е.стиль.масштаб = 1; }); }); box3.addEventListener("mouseleave", () => { gsap.to(box3, { высота: «60 пикселей», }); var img = document.querySelectorAll("#box3 img"); img.forEach(функция (e) { е.style.opacity = 0; е.стиль.масштаб = 0; }); }); } page2boxhover(); #page2 { дисплей: гибкий; выровнять-элементы: по центру; оправдание-содержание: пространство между; высота: 100вх; ширина: 100%; дополнение: 3vw 2vw; положение: относительное; } #page2 .elem { высота: 100%; ширина: 31%; переполнение: скрыто; положение: относительное; дисплей: гибкий; выровнять-элементы: по центру; оправдание-содержание: центр; } #page2 .elem img { высота: 100%; ширина: 100%; объектное соответствие: обложка; масштаб: 1,1; } .elem .box { радиус границы: 50 пикселей; высота: 60 пикселей; ширина: 70%; позиция: абсолютная; цвет фона: #c1aaa3; } .elem .box .boxHead { отступ: 20 пикселей 0; дисплей: гибкий; выровнять-элементы: по центру; оправдание-содержание: пространство вокруг; } .boxHead h5 { размер шрифта: 12 пикселей; вес шрифта: 100; } .boxHead h5:nth-child(3) { вес шрифта: 600; } #page2 .elem .box .boxContent { дисплей: гибкий; выровнять-элементы: по центру; оправдание-содержание: центр; маржа сверху: 40 пикселей; } #page2 .elem .box .boxContent img { отступ: 10 пикселей; высота: 150 пикселей; непрозрачность: 0; масштаб: 0; переход: все 0,2 с; Два хороших партнера [i] [/i] МАГАЗИН ГЛАВНАЯ [i][/i] [i] [img]https://cdn.sanity.io/images/w8f1ak3c/production/7d180ca25ade6277a215b634318056d551de9da8-5000x5000.png/Website%20Products%20(5).png?w=320&h=320&auto=format[/img] [img]https://cdn.sanity.io/images/w8f1ak3c/production/90d06c39f74f1365c801ec2a063227969c5ef940-2560x3840.jpg/LucyTweed_Photo:KatieKarrs.jpg?rect=129,0,2303,3840&w=640 &h=1067&fit=min&auto=format[/img] [/i] МАГАЗИН КЛАДОВАЯ [i][/i] [i] [img]https://cdn.sanity.io/images/w8f1ak3c/production/4206e9c3f7ab098369c39a2194b82eeca6bb0664-6166x4111.png/DSC0005_Dexter%20Kim.png?rect=0,4,6166,4104&w=32 0&h=213&auto=формат[/img] [img]https://cdn.sanity.io/images/w8f1ak3c/production/d3151106849ff2494d66916cf554c68a0603444d-902x1500.png/Rectangle%20220.png?rect=1,0,900,1500&w=640&h=1067 &fit=мин&auto=формат[/img] [/i] МАГАЗИН ВАННА [i][/i] [img]https://cdn.sanity.io/images/w8f1ak3c/production/63474079ab0c7723b75bd63b24d8bbc652349640-1408x1408.png/Cleanse%20&%20Nourish%20Hand%20Wash%20Two%20Good%20Co. png?w=320&h=320&авто =формат[/img] [img]https://cdn.sanity.io/images/w8f1ak3c/production/99866b12faf44f7490e6037dc197947334ce0a72-1408x1408.png/Nourish%20&%20Soothe%20Hand%20Lotion%20Two%20Good%20Co. png?w=320&h=320&авто =формат[/img]