Hover на картинке [закрыт]

188
11 октября 2018, 01:50

Есть картинка с прозрачным фоном. Как отрабатывать hover при наведении на саму картинку, а не на ее прозрачный фон?

Answer 1

Изображения типа png имеют альфа канал, то есть они не обрезаны по контуру, они имеют такую же квадратную форму как и другие изображения, но там где нет изображения - есть 100% прозрачность(альфа-канал). А так же блок img имеет квадратную форму дефолтно подстраивающуюся под изображение.

Есть старые объекты, такие как area заключённые в тег map. Они имеют свободную кликабельную область, использовались для выделения например территорий городов на картах. Вы можете поверх изображения повесить area и уже на него повесить hover

Answer 2

Кому интересно. Чтобы найти изображение без прозрачного фона:
1. Отрисуем картинку на холсте, и пробежимся по пикселям. проверяя каждый на прозрачность (data[3] - alpha). Находим контур картинки.
2. Найденые координаты добавляем в '< area>'
3. Теперь на '< area>' можем вашать всякое

Большое спасибо Nikita Shahov за то что направил в правильном направлении)

this.canvas = document.getElementById('.canvas');
this.ctxCanvas = this.canvas.getContext('2d');    

let image = new Image();
let mapActivity = [];
this.image.src = this.imgUrl;
this.image.onload = () => {
      this.ctxCanvas.drawImage(this.image, 0, 0, width, height);
      for (let x = 0; x <= height; x++) {
        for (let y = 0; y <= width; y++) {
          if (this.ctxCanvas.getImageData(x, y, 1, 1).data[3]) {
            this.mapActivity.push(x, y);
            break;
          }
        }
      }
      for (let x = 0; height >= x; x++) {
        for (let y = width; y >= 0; y--) {
          if (this.ctxCanvas.getImageData(x, y, 1, 1).data[3]) {
            this.mapActivity.push(x, y);
            break;
          }
        }
      }
    };
READ ALSO
React js Два параметра функции

React js Два параметра функции

есть проблема с кодом: Для идеальной работы функции надо написать в параметрах props и {company}, проблема в том, что из-за того параметра который...

208
Скрипт записи mp3 из браузера,на js

Скрипт записи mp3 из браузера,на js

Приведите пожалуйста пример скрипта, который силами js записывает mp3 файл при нажатие на кнопку в браузере пользователя

151
Как получить цифру из href кнопки таба, к которому относится контейнер таба?

Как получить цифру из href кнопки таба, к которому относится контейнер таба?

Можно ли как-то средствами js или jquery получить это число? При чем для каждой кнопки, потому как они лежат каждая в своем контейнере таба, получить...

188