наведите указатель мыши, добавив круг div позади

#html #css #hover

#HTML #css #наведение курсора

Вопрос:

У меня есть два изображения со стрелками (предыдущее / следующее) с кодом вот так:

 .fp-controlArrow {
    position: absolute;
    width: 32px; /* This can be added here so you don't have to set a width and height 2 times for each arrow, this will create one width for both arrows */
    height: 32px; /* This does the same as above */
    margin-top:-15px; /* This value must always be half of the height - This does the same as above */
    z-index: 30;
    top: 50%;
    cursor: pointer;
}

.fp-controlArrow.fp-prev {
    left:0;
    background: url(https://uploads-ssl.webflow.com/602dbecd2160ce28b5bc428b/602e923133f8dc0bf994fc49_left-arrow.svg) no-repeat;
}
.fp-controlArrow.fp-next {
    right:0;
    background: url(https://uploads-ssl.webflow.com/602dbecd2160ce28b5bc428b/602e9231ec03b6c9682b540c_right-arrow.svg) no-repeat;
 

Я бы хотел, чтобы при наведении курсора на стрелку за стрелкой появлялся круглый прозрачный круг, как в этом примере:

введите описание изображения здесь

как я могу этого добиться?

Спасибо!

Ответ №1:

 padding: 1em;
border-radius: 50%;
background-color: rgba(200,200,200,0.5)
 

Добавьте те строки в .fp-controlArrow класс, который должен это сделать.

Редактировать

Извините, я не знал, что это svg. Вам нужно будет встроить svg.

 <div class="fp-controlArrow fp-prev">

  <svg width="32" height="32" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-reactroot="">
    <path stroke-linejoin="round" stroke-linecap="round" stroke-width="1" stroke="#221b38" d="M16 20L8 12L16 4"></path>
  </svg>

</div>
<div class="fp-controlArrow fp-next">

  <svg width="32" height="32" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" data-reactroot="">
    <path stroke-linejoin="round" stroke-linecap="round" stroke-width="1" stroke="#221b38" d="M8 20L16 12L8 4"></path>
  </svg>

</div>
 
 .fp-controlArrow {
    position: absolute;
    width: 32px; /* This can be added here so you don't have to set a width and height 2 times for each arrow, this will create one width for both arrows */
    height: 32px; /* This does the same as above */
    margin-top:-15px; /* This value must always be half of the height - This does the same as above */
    z-index: 30;
    top: 50%;
    cursor: pointer;
    padding: 1em;
    border-radius: 50%;

}

.fp-controlArrow:hover {
  background: green;
  background-color: rgba(200,200,200,0.5);
} 

.fp-controlArrow.fp-prev {
    left:0;
}
.fp-controlArrow.fp-next {
    right:0;
  
 

Вот codepen, который демонстрирует это.

Комментарии:

1. Привет, ты пробовал это? Я не мог заставить его работать, я думаю, потому что изображения являются SVG, но, возможно, я сделал что-то не так.

Ответ №2:

Извините, я не видел пробел между: и hover .

 .fp-controlArrow.fp-prev {
left:0;
background: url(https://uploads-ssl.webflow.com/602dbecd2160ce28b5bc428b/602e923133f8dc0bf994fc49_left-arrow.svg) no-repeat;
border-radius: 50px;
}
.fp-controlArrow.fp-prev:hover{
background-color: #999999;
}
 

Комментарии:

1. Я не думаю, что это работает — фоновые изображения — это svg.

2. Прошу прощения, я пробовал ваш код, и это не сработало, но теперь я вижу, что в вашем коде есть пробел между : и наведением курсора, которого я не заметил. Если это будет удалено, все в порядке. Может быть, вы могли бы отредактировать его?

3. Я действительно попробовал ваш код и не нахожу никаких проблем с svg-файлом. Кроме того, вы уже добавили «no repeat» в svg, так что вам не о чем беспокоиться.