Масштабирование и центрирование изображения при наведении курсора

Я разрабатываю руководства пользователя для своей компании, и мне нужно найти лучший способ просмотра изображений. У меня есть масштабирование при наведении, чтобы работать нормально, но это будет работать правильно, только если у пользователя есть большой экран компьютера при просмотре изображения. Поэтому я хочу центрировать изображение при наведении курсора.

Кроме того, было бы прекрасно, если бы изображение масштабировалось по отношению к размеру окна. У меня есть bootstrap, и jQuery связан.

Мой код на данный момент

     .thumbnail {
        transition: transform .5s, left .5s; /* Animation */
    	margin: 0 auto;
        z-index: 2;
    }
    
       @media (min-width: 1600px) { 
       .thumbnail:hover {
    	transform: scale(1.75);
    
    }}
       
       @media (max-width: 1600px) { 
       .thumbnail:hover {
        transform: scale(1.5);
        position: relative;
        left: 25%;
    
    }}
    <img src = "http://via.placeholder.com/350x150" class = "thumbnail" style = "width:800px; height:auto">
  

Большая проблема - это боковое меню, которое является частью шаблона на бизнес-сайте. Щелкните эту ссылку, чтобы увидеть.

почему вы используете левый: 25%?

DaFois 24.07.2018 12:23

Если бы я вообще не менял положение, изображение на мобильных телефонах увеличивалось бы и исчезало из окна.

AleksanderVH 24.07.2018 12:26
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
2
2
1 293
3

Ответы 3

Используйте свойство object-fit для img

.thumbnail {
 object-fit: cover;
}

Подгонка объекта - хорошее решение, я согласен, однако недостатком является то, что IE не поддерживает его и частично поддерживается на периферии. Это означает, что OP также должен подумать о том, как решить эту проблему. css-tricks.com/almanac/properties/o/object-fit

Dorvalla 24.07.2018 13:05

Проверьте q для получения обновленной информации. object-fit, вероятно, будет хорошо работать на сайте без боковой панели

AleksanderVH 24.07.2018 13:29

Проблема в том, что при подгонке к объекту размер изображения изменяется в соответствии с его контейнером, но поскольку с правой стороны есть отдельный контейнер, он будет изменять размер, чтобы соответствовать контейнеру контента, а не самому сайту.

AleksanderVH 25.07.2018 09:26

Если вы не связали bootstrap и jquery, пожалуйста, сначала свяжите их. В теге style замените текущий код этим. (Это тоже отзывчиво).

<style>   
.zoom {
    padding: 50px;
    transition: transform .2s; 
    margin: 0 auto;
    border :none;
}

.zoom:hover {
    transform: scale(1.2); 
    }
</style>

И добавьте «масштабирование» к вашему классу в теге img.

<img src = "http://via.placeholder.com/350x150" class = "thumbnail zoom" style = "width:800px; height:auto">

Это почти то же самое, что я уже использую, но это не помогло изображению оставаться внутри окон ... Это отлично работает для масштабной части, но изображение все еще находится за пределами кадра.

AleksanderVH 24.07.2018 12:57

Я использую chrome devTools для проверки отзывчивости. Он отлично работал в chrome devTools.

Shalin Nipuna 24.07.2018 13:12

проверьте изображение, которое я связал в q. Это показывает, что это, вероятно, работает нормально, но из-за шаблона на сайте все сдвинуто немного влево.

AleksanderVH 24.07.2018 13:27

.thumb-div {
    overflow: hidden;
  }
  
  .thumb-div img {
    -webkit-transition: ease all 0.3s;
    -moz-transition: ease all 0.3s;
    -o-transition: ease all 0.3s;
    transition: ease all 0.3s;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
  
  .thumb-div:hover img {
    -webkit-transform: scale(1.1) rotate(0.1deg);
    -moz-transform: scale(1.1) rotate(0.1deg);
    -ms-transform: scale(1.1) rotate(0.1deg);
    -o-transform: scale(1.1) rotate(0.1deg);
    transform: scale(1.1) rotate(0.1deg);
  }
<div class = "thumb-div">
  <img src = "http://via.placeholder.com/350x150" title = "" alt = "" />
</div>

Пожалуйста, объясните, как это решает проблему с OP. Только почтового кода недостаточно.

Andrzej Ziółek 24.07.2018 15:05

Я изменил код. проверьте, теперь он работает правильно.

Kishan 25.07.2018 15:32

Другие вопросы по теме