Пожалуйста, перейдите на мой сайт здесь:
Вы увидите таблицу элементов каталога. Наведите курсор на одно из изображений. Вы должны увидеть увеличенное изображение.
Вы также можете заметить, что изображение немного мерцает. Это происходит, когда вы наводите указатель мыши на верхнюю часть миниатюры.
Причина, по которой это происходит, заключается в том, что, как вы заметите, верхний край увеличенного изображения находится примерно посередине миниатюрного изображения. Это означает, что когда изображение увеличивается, мышь располагается прямо над увеличенным изображением. Это означает, что как только вы переместите мышь, она обнаружит это как событие mouseout, из-за чего изображение снова сожмется. Но это, в свою очередь, вызывает увеличение, потому что мышь все еще находится над миниатюрой изображения. Это приводит к циклу увеличения и уменьшения, который, если смотреть очень быстро, дает вам мерцание.
Поэтому мне интересно, есть ли способ заставить верхнюю часть увеличенного изображения совпадать с уменьшенным изображением.
Событие наведения вызывает переход css, когда класс, на который выполняется переход, устанавливает положение изображения в абсолютное:
img {
transition: width 0;
&:hover {
position: absolute;
z-index: 100;
width: 300px;
border: 1px solid black;
box-shadow: 5px 5px 10px grey;
transition: width .2s linear;
}
}
Я бы попытался настроить верхнее свойство увеличенного изображения, установив для него значение 0, но с position: absolute это просто приводит к тому, что изображение размещается в верхнем левом углу экрана. Я не уверен, как рассчитать позицию в CSS относительно содержащего его элемента (td в угловой матовой таблице), поэтому я немного не понимаю, как это сделать.
Любая помощь приветствуется. Спасибо.