Событие наведения, но не на сенсорных/мобильных устройствах

  • Автор темы katrin1988
  • 33
  • Обновлено
  • 12, May 2024
  • #1
Всем привет, Я пытаюсь создать событие наведения, которое показывает изображение.

На моем рабочем столе/ноутбуке все работает правильно.

Однако на мобильном телефоне (сенсорное) изображение появляется только при нажатии на модальную ссылку, а затем оно прикрепляется (оно остается на экране). На мобильных устройствах или сенсорных экранах я не хочу, чтобы событие наведения сработало. Вот с чем я работаю.

Джсфиддл
https://jsfiddle.net/postcolonialboy/pxwd34ka/4/

HTML
 .preview {

display: none;

position: absolute;

bottom: 0;

right: 0;

z-index: 1;

height: 50%;
}
HTML: CSS
 <a href="#test" id="test-parent">Hover to show image</a> <img class="preview" id="test-child" src="[URL='https://lumtu.com/yti/cgaagcGdodHRwczovL21heXZlcnMuY29tLmF1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE3LzA5L3Rlc3QtaW1hZ2Uu2Zh']https://mayvers.com.au/wp-content/uploads/2017/09/test-image.jpg[/URL]" /> <script> $("#test-parent").hover(function() { $("#test-child").fadeToggle(); }); </script>
Код (CSS):

katrin1988


Рег
11 Sep, 2015

Тем
1

Постов
1

Баллов
11
  • 20, May 2024
  • #2
Хорошим началом было бы отказаться от использования JavaScript (а тем более отупляющего уныния, которым является jQuery) для выполнения работы CSS. Шаг 1. Удалите весь мусор, который не нужен разметке.
 
.hoverNext + img {
position:absolute;
bottom: 0;
right:100vw;
height:50%;
z-index:1;
opacity:0;
transition:right 0s 0.5s, opacity 0.5s;
}

.hoverNext:hover + img {
right:0;
opacity:1;
transition:right 0s, opacity 0.5s;
}
Код (разметка): Шаг 2. Пусть CSS сделает всю тяжелую работу.
  <a href="#test" class="hoverNext">Hover to show image</a> <img src="/wp-content/uploads/2017/09/test-image.jpg" alt="опишите это, alt не является обязательным!" > 
Код (разметка): поскольку в мобильном телефоне НЕТ состояний наведения, он ничего не будет делать.

Обратите внимание: я не уверен, что это должен быть якорь, но я пока оставил его в покое.

Это не было задачей JavaScript с тех пор, как мы перестали заботиться о IE7/раньше.

Само присутствие «fadeToggle» в умственной пыхтящей карлике jQuery — это всего лишь голубиный помет на памятнике невежеству, некомпетентности и неумелости, которыми являются интерфейсные фреймворки.
 

TRUS


Рег
20 Mar, 2014

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно