Я пытаюсь сделать эффект hover image-zoom
холсте в базовой галерее HTML с помощью стилей CSS-3. Каждый пятый ящик всегда мерцает над мышью. Может кто-нибудь помочь указать, где код ошибки... Спасибо заранее.
body {
margin-top: 100px;
margin-bottom: 100px;
}
#container {
width:738px;
height:600px;
margin: 0 auto;
}
#ex2 img{
height: 88px;
width: 120px;
margin: 0 0;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
}
#ex2 img:hover {
height: 189px;
width: 258px;
margin-left: 0px;
}
<div id="container">
<div id="containerEx2">
<div id="ex2">
<img src="images2/dm1_large.jpg"/>
<img src="images2/dm2_large.jpg"/>
<img src="images2/dm3_large.jpg"/>
<img src="images2/dm4_large.jpg"/>
<img src="images2/dm5_large.jpg"/>
<img src="images2/dm6_large.jpg"/>
<img src="images2/dm7_large.jpg"/>
<img src="images2/dm1_large.jpg"/>
<img src="images2/dm2_large.jpg"/>
<img src="images2/dm3_large.jpg"/>
</div>
</div>
</div>
Я предлагаю вам разделить изображения на 2 строки, все остальные ответы приводят к некоторым неприятностям с мерцанием в firefox. Вам все равно нужно увеличить ширину контейнера, но шестое изображение не будет вскакивать вверх, если у вас есть 2 строки. Я также превратил id
группирующий ваши изображения в classes
для удобства использования в вашем css:
<div id="container">
<div id="containerEx2">
<div class="ex2"> <!-- 'id' has become a 'class' -->
<img src="images2/dm1_large.jpg" />
<img src="images2/dm2_large.jpg" />
<img src="images2/dm3_large.jpg" />
<img src="images2/dm4_large.jpg" />
<img src="images2/dm5_large.jpg" />
</div>
<div class="ex2"> <!-- 'id' has become a 'class' -->
<img src="images2/dm6_large.jpg" />
<img src="images2/dm7_large.jpg" />
<img src="images2/dm1_large.jpg" />
<img src="images2/dm2_large.jpg" />
<img src="images2/dm3_large.jpg" />
</div>
</div>
</div>
body {
margin-top: 100px;
margin-bottom: 100px;
}
#container {
width:800px; /* ensuring 5th image remains on the 1st line */
height:600px;
margin: 0 auto;
}
.ex2 img { /* changed #ex2 (hash) to .ex2 (dot) */
height: 88px;
width: 120px;
margin: 0 0;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
}
.ex2 img:hover { /* changed #ex2 (hash) to .ex2 (dot) */
height: 189px;
width: 258px;
margin-left: 0px;
}
Ваш ответ лежит на ширине вашего контейнера. Поскольку он должен вытолкнуть, он не может оставаться в одном ряду, поэтому он переместит его в следующую строку. Поскольку это активный элемент, который должен быть переключен, он будет мерцать, потому что элемент должен выйти из границ предложенного блока.
Я создал JSfiddle и сделал ваш контейнер на 100 пикселей больше, в результате чего он работал нормально.
#container {
width:838px;
height:600px;
margin: 0 auto;
}
РЕДАКТИРОВАТЬ
Что касается мерцающей части, я понятия не имею. Я думаю, что это проблема firefox, потому что я тестировал ее в Chrome, и она не мерцает в моем браузере.
Проблема заключается в ширине контейнера, вам нужно увеличить ширину контейнера при наведении, незначительные изменения в CSS:
#container {
-webkit-transition:all 1s ease;
width:620px;
height:600px;
margin: 0 auto;
}
#container:hover {
width:760px;
}
И вот FIDDLE