Как сделать так, чтобы бордюр становился больше, когда я наводил курсор на что-то поверх него?

Я пытаюсь сделать 4 маленьких ящика больше, когда вы наводите курсор на ящик поверх них, как эстетический стиль.

Я пытался искать примеры в Интернете и на StackOverflow, но каждый пример, который я пробовал, не работал либо потому, что он был на JavaScript, и я просто не понял его, либо он был в J Query, и я не использую J Query (я не уверен, что должен). Это то, что я пытаюсь получить. https://imgur.com/a/jy4ozCe

У меня есть все HTML и CSS, за исключением того, что я не могу заставить функцию работать. Я новичок в React и Javascript, и сейчас я немного растерялся.

Я старался

JS

function animation(color) {
  document.getElementsByClassName('animated-box').style.backgroundColor = 'color';
}

HTML

 <div className = "hp-left">
        <div className = "home-card-top-left">
            <iframe title = "JSX" width = "100%" height = "100%" src = "https://www.youtube.com/embed/rUvUKWbyMgM" frameborder = "0" allow = "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />
            <div className = "animated-box"></div>
        </div>
        <div className = "home-card-bottom-left" onmouseover = {animation('red')} onmouseout = {animation('white')}>
            <a href = "https://www.gofundme.com/gamehubgg?fbclid=IwAR1QApuq8jTeihAAcx8Y_1i23PSDLXEo9nDocQvUHuOMIxVLMK6x2pqcRK0">
            <img
              className = "haloimg"
              src = {
                "https://zach-miller.com/wp-content/uploads/2017/03/its-giveaway-time.jpg"
              }
              width = "50%"
              height = "100%"
              alt = "Halo Pic"
            />
          </a>
        </div>
   </div>

это был ответ, который кто-то дал на StackOverflow, но это дает мне

"TypeError: Cannot set property 'backgroundColor' of undefined"

Это всего лишь фрагмент «div», на который я хочу навести курсор, и поле.

Я хочу навести курсор на большую секцию и заставить маленькую коробку расти, пока она не охватит большую. Я пытался сделать это в CSS, но и там это не сработало, потому что оно находится за div. Я все равно хочу сделать это в JS или JSX.

Но есть ли у вас элемент с именем класса «animated-box»? я ничего не вижу

Vega 10.04.2019 20:13

Попробуйте getElementsByClassName('haloimg')

StefanBob 10.04.2019 20:16

Извините, ребята, я пытался сократить код, потому что он выглядел запутанным, но я вырезал часть коробки из первой «домашней карты-вверху-слева». Извиняюсь!

Joshu 10.04.2019 20:17

Я вернул «анимированную коробку».

Joshu 10.04.2019 20:18

Когда я вырезал его, я вырезал его из StackOverflow. Это все еще было в моем коде на случай, если это сбивает с толку. Я до сих пор не знаю, что делать.

Joshu 10.04.2019 20:52
Поведение ключевого слова "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
5
791
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если я правильно понимаю, что вы хотите, не так ли? Если я ошибаюсь, пожалуйста, дайте более подробную информацию с примерами!

.box-hover {
  color: white;
  background: green;
  padding: 20px;
}

.box-hover:hover ~ * {
  border-width: 10px;
}

.box-border {
  width: 50px;
  height: 50px;
  background: red;
  border: 1px solid black;
  margin: 10px;
  transition: .3s;
}
<div class='box-hover'>hover on me</div>
<div class='box-border'></div>
<div class='box-border'></div>
<div class='box-border'></div>
<div class='box-border'></div>

Да, это близко, но я хочу сделать это в JSX, а не с помощью css:hover

Joshu 10.04.2019 21:09

Извините, я не знаю jsx, вот ванильный js )))

let
  boxHover = document.querySelector('.box-hover'),
  boxBorder = document.querySelectorAll('.box-border');

boxHover.addEventListener("mouseover", function() {
  for (let i = 0; i < boxBorder.length; i++) {
    boxBorder[i].style.borderWidth = '10px'
  }
})
.box-hover {
  color: white;
  background: green;
  padding: 20px;
  border: 1px solid black;
}

.box-border {
  width: 50px;
  height: 50px;
  background: red;
  border: 1px solid black;
  margin: 10px;
  transition: .3s;
}
<div class='box-hover'>hover on me</div>
<div class='box-border'></div>
<div class='box-border'></div>
<div class='box-border'></div>
<div class='box-border'></div>
Ответ принят как подходящий

Вы можете сделать это, используя state и handleMouseHover с помощью:

<div
  onMouseEnter = {this.handleMouseHover}
  onMouseLeave = {this.handleMouseHover}
>

Пример: https://codesandbox.io/s/j4x14q6q35

Для onhover style вы можете использовать transform: scale.

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

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