Недавно я решил перевести свой JQuery плагин “Увеличить изображение” на одном из своих сайтов в эквивалент чистого CSS, и результаты оказались поразительными: у меня получился такой же эффект, но с более гибкой конструкцией, не JavaScript, и гораздо меньше кода.
В этом уроке я поделюсь с вами кодом, который я написал, чтобы добавить плавный эффект масштабирования изображений при наведении.
Вот демо-версия: просто поместите курсор над изображениями.
Мы в основном воспользоваться функцию CSS Transitions , чтобы изображения плавно увеличивались и уменьшались.
Следующий код CSS будет определять нормальное состояние изображения и состояние при наведении. В нормальном состоянии мы выберем, какие свойства применяются к переходам, а всостояние при наведении, конечные значения. Это значит, что изображение будет иметь высокий Z-индекс при наведении.
.zit { position:relative; width:100px; height:80px; left:0px; top:0px; border:1px solid black; /* Apply a CSS3 Transition to width, height, top and left properties */ transition: width 0.3s ease,height 0.3s ease,left 0.3s ease,top 0.3s ease; -webkit-transition: width 0.3s ease,height 0.3s ease,left 0.3s ease,top 0.3s ease; -o-transition: width 0.3s ease,height 0.3s ease,left 0.3s ease,top 0.3s ease; -moz-transition: width 0.3s ease,height 0.3s ease,left 0.3s ease,top 0.3s ease; } .zit:hover { width:150px; height:120px; left:-25px; top:-25px; z-index:9999; } .ZoomIt ul { clear:both; } .ZoomIt li { width:102px; height:82px; margin:4px; float: left; overflow:visible; display: block; }
Обратите внимание, что я дублировал все линии “transition” и добавлял –webkit– и –moz– –о– префиксы, что необходимо для других браузеров (Mozilla, Chrome, Opera, …)
В HTML-разметке, любое изображение (или другой элемент) с именем класса “zit” будет иметь эффект масштабирования:
<div class="ZoomIt"> <ul> <li><a href="http://www.slapix.com/lol/i_gots_my_eye_on_you.aspx" title="I gots my eye on you"><img class="zit" src="http://www.slapix.com/img/i2m/i_gots_my_eye_on_you.jpg" /></a></li> <li><a href="http://www.slapix.com/lol/take_my_advice.aspx" title="Paul McCartney"><img class="zit" src="http://www.slapix.com/img/i2m/take_my_advice.jpg" /></a></li> <li><a href="http://www.slapix.com/lol/the_greatest_gift_of_all_is.aspx" title="George Harrison"><img class="zit" src="http://www.slapix.com/img/i2m/the_greatest_gift_of_all_is.jpg" /></a></li> <li><a href="http://www.slapix.com/lol/i_ll_never_be_perfect.aspx" title="I'll never be perfect"><img class="zit" src="http://www.slapix.com/img/i2m/i_ll_never_be_perfect.jpg" /></a></li> </ul> <ul> <li><a href="http://www.slapix.com/lol/where_s_my_hug_today.aspx" title="Where's my hug today"><img class="zit" src="http://www.slapix.com/img/i2m/where_s_my_hug_today.jpg" /></a></li> <li><a href="http://www.slapix.com/lol/i_m_nice_until_you_screw_it_up.aspx" title="I'm a nice person"><img class="zit" src="http://www.slapix.com/img/i2m/i_m_nice_until_you_screw_it_up.jpg" /></a></li> <li><a href="http://www.slapix.com/lol/karma_has_no_deadline.aspx" title="Karma has no deadline"><img class="zit" src="http://www.slapix.com/img/i2m/karma_has_no_deadline.jpg" /></a></li> <li><a href="http://www.slapix.com/lol/you_are_beautiful.aspx" title="You are beautiful"><img class="zit" src="http://www.slapix.com/img/i2m/you_are_beautiful.jpg" /></a></li> </ul> </div>
Этот код будет работать на последних версиях основных браузеров, таких как IE10, Firefox, Chrome, Opera и т.д.