Всегда вешай draggable="false" на картинки — маленький атрибут с большим значением!

сб, 5 апреля 2025 г. - 2 мин чтения
Картинка с отключённым перетаскиванием

Вешай draggable=“false” на картинки — и делай интерфейс лучше

Когда ты последний раз случайно “потащил” изображение на сайте мышкой или пальцем? Возможно, этого ты и не замечал — а вот твои пользователи замечают, и раздражаются.

По умолчанию все изображения в HTML могут быть перетаскиваемыми. Это поведение редко бывает полезным, но часто мешает. Особенно на мобильных устройствах, touch-интерфейсах и в drag’n’drop UI.


🧠 Что делает draggable=“false”?

HTML-атрибут draggable="false" запрещает браузеру инициировать перетаскивание изображения.

Пример:

<img src="/logo.png" alt="Логотип" draggable="false" />

Теперь изображение нельзя случайно «схватить» мышкой или пальцем — оно просто зафиксировано в интерфейсе.


❗ Почему стоит отключить перетаскивание изображений

1. Избавление от случайных drag-событий

Пользователь пытается свайпнуть — но вместо этого браузер начинает перетаскивание картинки. Особенно часто это случается:

  • в слайдерах и каруселях,
  • в галереях,
  • на баннерах,
  • в интерфейсах с drag’n’drop логикой (например, редакторы, конструкторы).

Это нарушает UX и выглядит как баг.


2. Защита логики drag’n’drop

Если ты реализуешь собственное перетаскивание элементов (например, карточек или блоков), браузер может «мешать», если внутри них есть img. Браузер будет пытаться перетащить саму картинку, а не твой элемент.

👉 Решение: на все img в таких элементах — ставь draggable="false".


3. Избегаешь багов в Safari и Chrome

Некоторые браузеры (особенно на iOS) некорректно обрабатывают перетаскивание изображений:

  • появляется системный drag-preview,
  • картинка улетает за экран,
  • ломается touch-интерфейс.

4. Повышаешь стабильность интерфейса

UX должен быть предсказуемым. Если пользователь случайно начинает перетаскивание, это сбивает его с пути. Простая блокировка через draggable="false" делает сайт более стабильным и аккуратным.


✅ Где особенно важно ставить draggable="false"

  • На логотипах
  • На иконках
  • На кнопках с изображениями
  • На превьюшках товаров
  • На картинках внутри drag’n’drop-элементов
  • На изображениях в галереях и слайдерах

✍️ Советы по применению

Через HTML:

<img src="/avatar.jpg" alt="Профиль" draggable="false" />

Через JavaScript (если нужно массово отключить):

document.querySelectorAll('img').forEach((img) => {
	img.setAttribute('draggable', 'false');
});

Через React/JSX:

<img src="/icon.svg" alt="Иконка" draggable={false} />

📈 Влияние на SEO и UX

  • 🔒 Устойчивость: интерфейс не ведёт себя странно при взаимодействии.
  • 🧩 Лучшее восприятие: пользователь не отвлекается на баги.
  • 📱 Поддержка touch-интерфейсов: особенно важно на мобильных.
  • Косвенно улучшает SEO: улучшение поведенческих факторов (время на сайте, отказов меньше).

📝 Вывод

Один маленький атрибут draggable="false":

  • Делает интерфейс чистым и надёжным,
  • Предотвращает ненужные баги и раздражения,
  • Защищает твой drag’n’drop-UI от конфликтов,
  • Улучшает пользовательский опыт — а значит, и впечатление от продукта.

💡 Проверь свой сайт:

Проскроль страницу, и попробуй потащить картинки мышкой. Если они “схватываются” — пора ставить draggable=“false”.