HTML/CSS, Javascript | 27 апреля 2011 |

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

Что понадобится для начала?

Постройте списки, к примеру, вот так:

1
2
3
4
5
6
7
8
9
10
11
<ul class="thumb">
	<li><a href="#"><img src="/examples/images/thumb100.jpg" alt="" /></a></li>
	<li><a href="#"><img src="/examples/images/thumb200.jpg" alt="" /></a></li>
	<li><a href="#"><img src="/examples/images/thumb300.jpg" alt="" /></a></li>
	<li><a href="#"><img src="/examples/images/thumb400.jpg" alt="" /></a></li>
	<li><a href="#"><img src="/examples/images/thumb500.jpg" alt="" /></a></li>
	<li><a href="#"><img src="/examples/images/thumb600.jpg" alt="" /></a></li>
	<li><a href="#"><img src="/examples/images/thumb700.jpg" alt="" /></a></li>
	<li><a href="#"><img src="/examples/images/thumb800.jpg" alt="" /></a></li>
	<li><a href="#"><img src="/examples/images/thumb900.jpg" alt="" /></a></li>
</ul>

Оформите это с помощью CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ul.thumb {
	float: left;
	list-style: none;
	margin: 0; padding: 10px;
	width: 360px;
}
ul.thumb li {
	margin: 0; padding: 5px;
	float: left;
	position: relative;  /* Set the absolute positioning base coordinate */
	width: 110px;
	height: 110px;
}
ul.thumb li img {
	width: 100px; height: 100px; /* Set the small thumbnail size */
	-ms-interpolation-mode: bicubic; /* IE Fix for Bicubic Scaling */
	border: 1px solid #ddd;
	padding: 5px;
	background: #f0f0f0;
	position: absolute;
	left: 0; top: 0;
}
ul.thumb li img.hover {
	background:none;
	border-style: none; /* Get rid of border on hover */
}

Заставим это работать с jQuery

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$("ul.thumb li").hover(function() {
	$(this).css({'z-index' : '10'}); /*Поставь картинку выше остальных*/ 
	$(this).find('img').addClass("hover").stop() /* Добавить класс "hover"*/
		.animate({
			marginTop: '-110px', /* Добавь отступ сверху -110[x */ 
			marginLeft: '-110px',
			top: '50%',
			left: '50%',
			width: '174px', /* Установить новую ширину*/
			height: '174px', /* Установить новую высоту */
			padding: '20px'
		}, 200); /* Это значение скорость анимации */
 
	} , function() { /*После ухода курсора с картинки*/
	$(this).css({'z-index' : '0'}); /* Вернуть значение z-index на место */
	$(this).find('img').removeClass("hover").stop()  /* Убрать класс ховер */
		.animate({
			marginTop: '0', /* Вернуть отступы на место */
			marginLeft: '0',
			top: '0',
			left: '0',
			width: '100px', /* Установить ширину по умолчанию назад */
			height: '100px', /* Установить ширину по умолчанию назад */
			padding: '5px'
		}, 400);
});

Собственно говоря, если вам интересно, что именно этот код делает так, то вкратце так:
К ячейке li класса thumb при наведении добавляется отступ z-index, потом там же в этой же ячейке ищется тег img и к нему добавляется класс .hover (смотрите часть с css).

Затем используется функция animate. Добавляется новая ширина и высота, новые отступы и т.д.

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

Рекомендую еще почитать

  • Плавающий блок слева
  • jQ Animate
  • CSS спрайты
  • Как верстать дивами
  • Ограничение текста в textarea

  • Вы, можете добавить эту статью, в один из следующих сервисов:

    Опубликовать в Twitter Опубликовать в своем блоге livejournal.com

    Комментирование закрыто.