Решение на jQuery для выделения и увеличения объектов на фотографии при заходе на них курсора мыши или нажатии в мобильном варианте.

Данным способом можно понятно и красиво выделить людей на групповом фото или, например, отметить элементы какого-нибудь строения.

Пример:

edge

HTML:

Где:

data-x и data-y - координаты в процентах X и Y центра объекта, который будет увеличиваться. Определить их можно на глаз или, например, в конструкторе Clip-Path поставив точку в нужное место и взяв ее координаты.

data-w и data-h - ширина и высота окна в процентах, которое будет выделяться. Определяется также на глаз, чтобы уместилось все необходимое. Если задать значение высоты 0, она будет равной ширине в нужной пропорции, чтобы получить квадрат.

data-r - радиус закругления краев обьекта в точках, аналогичный border-radius

CSS:

jQuery:

Смотрите также:

Эффект на WebGL, который заменяет одну фотографию на другую при заходе курсора мыши

Описание для фотографий, которое выдвигается сбоку при наведении курсора мыши

Тасующиеся по клику фотографии как колода карт

Добавить комментарий:

Ваш комментарий отправлен!

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

  • Антон:

    А зачем указывать все значения в процентах, когда намного удобнее в пикселях?

    Ответить
    • Alexander:

      У нас ширина картинки 100% относительно родителя.
      Если по точкам, то на десктопе она одна, на мобилках другая

      Ответить
      • Сергей:

        Это вариант для компа. На мобильных все равно раком. Координаты нужно привязывать к фото.

        Ответить
        • Alexander:

          Координаты нужно везде привязывать, а на мобилу клик нужен, а не ховер

          Ответить
          • Сергей:

            Если подточить, работает и на мобильном нормально. Только не понятно, почему ширина 100%, а не высота? А если фото вертикальное?

            Ответить
            • Alexander:

              И высота 100%, в зависимости от ширины.
              А ширина должна быть 100%, т.к. контейнер всегда разный, в зависимости от колонок и размера экрана.

              Ответить