Как я могу упростить объекты в CSS или JS для определенных элементов?

https://codepen.io/jenny0515/pen/KKZKyaB

Если вы откроете ссылку выше, вы увидите, что на какой бы куб я не навел курсор, тот, на который наведен курсор, останавливается и становится больше, в то время как другие резко останавливаются и также становятся больше. Но то, что я пытался достичь, это то, что пока я наводил курсор на куб, который ослаблялся, остальные, на которых не зависали, должны ослабляться. Я не думаю, что это возможно в CSS, но, поскольку я новичок в кодировании, может быть, есть шанс? Но если нет, я могу использовать JS, чтобы попытаться перекрыть кубы, на которые не наводят курсор, чтобы они могли сжиматься или уменьшаться, в то время как тот, на котором наведен курсор, ослабляется, последний без какой-либо помощи со стороны JS, если возможно.

Вот предварительный просмотр моего HTML-кода, но, пожалуйста, откройте ссылку выше:

<div class = "div">
  <div class = "circle">
    <div class = "stop-anim">
      <div class = "ease-in">
        <div class = "cube"><a href = ""></a></div>
        <div class = "cube"><a href = ""></a></div>
        <div class = "cube"><a href = ""></a></div>
      </div>
    </div>
  </div>
</div>

Я сделал несколько попыток, используя только CSS, но они не сработали.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Здесь js не нужен. Прежде всего, определите переходы для всех кубов, а не только для :hovered. В любом случае он будет воспроизводиться только при изменении свойств:

.ease-in .cube{
 transition: width 2s ease-in, height 2s ease-in; 
}

Здесь я перечисляю только свойства, которые мы собираемся изменить с помощью transition, а не animation.

Затем измените :hover target .cube реквизит:

.ease-in .cube:hover{
  width:100px;
  height:100px;
}

И остальные кубики:

/* Selector takes cubes inside a hovered .ease-in, but those that are not hovered by themselves */
.ease-in:hover .cube:not(:hover){
  width:15px;
  height:15px;
}

Это сработало, но не останавливало другие кубы, которые не находились в режиме зависания, пока я не добавил «pause-animation-play-state» в раздел «.ease-in:hover .cube:not(:hover)». Спасибо за помощь!

Jennifer 22.03.2022 22:56

Другие вопросы по теме