Говоря о дизайне, нельзя не вспомнить про Apple. Каталог продукции на сайте или просто новый веб-сайт – всегда есть чему удивиться. Веб-дизайнеры и кодеры работающие на Apple всегда эффективно и эффектно используют такие технологии как Flash и Java Script (jQuery, Mootools и т.д.). Сегодня я расскажу как реализовать у себя на сайте одну из галерей с возможностью слайдшоу в стиле Apple.
Как всегда с помощью CSS и jQuery.
Подключаем jQuery:
1 | <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> |
Вызов элементов 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <script type="text/javascript"> $(document).ready(function(){ /* This code is executed after the DOM has been completely loaded */ var totWidth=0; var positions = new Array(); $('#slides .slide').each(function(i){ /* Traverse through all the slides and store their accumulative widths in totWidth */ positions[i]= totWidth; totWidth += $(this).width(); /* The positions array contains each slide's commulutative offset from the left part of the container */ if(!$(this).width()) { alert("Please, fill in width & height for all your images!"); return false; } }); $('#slides').width(totWidth); /* Change the cotnainer div's width to the exact width of all the slides combined */ $('#menu ul li a').click(function(e,keepScroll){ /* On a thumbnail click */ $('li.menuItem').removeClass('act').addClass('inact'); $(this).parent().addClass('act'); var pos = $(this).parent().prevAll('.menuItem').length; $('#slides').stop().animate({marginLeft:-positions[pos]+'px'},450); /* Start the sliding animation */ e.preventDefault(); /* Prevent the default action of the link */ // Stopping the auto-advance if an icon has been clicked: if(!keepScroll) clearInterval(itvl); }); $('#menu ul li.menuItem:first').addClass('act').siblings().addClass('inact'); /* On page load, mark the first thumbnail as active */ /* Enabling auto-advance. */ var current=1; function autoAdvance() { if(current==-1) return false; $('#menu ul li a').eq(current%$('#menu ul li a').length).trigger('click',[true]); // [true] will be passed as the keepScroll parameter of the click function on line 28 current++; } // The number of seconds that the slider will auto-advance in: var changeEvery = 10; var itvl = setInterval(function(){autoAdvance()},changeEvery*1000); /* End of customizations */ }); </script> |
50-я строка – мы можем настроить с какой периодичностью будут переключатся слайды. По умолчанию значение равно 10 секундам.
HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <div id="main"> <div id="gallery"> <div id="slides"> <div class="slide"><img src="macbook.jpg" width="920" height="400" /></div> <div class="slide"><img src="iphone.jpg" width="920" height="400" /></div> <div class="slide"><img src="imac.jpg" width="920" height="400" /></div> </div> <div id="menu"> <ul> <li class="fbar"> </li><li class="menuItem"><a href=""><img src="thumb_macbook.png" /></a></li><li class="menuItem"><a href=""><img src="thumb_iphone.png" /></a></li><li class="menuItem"><a href=""><img src="thumb_imac.png" /></a></li> </ul> </div> </div> </div> |
Вставляя новые слайды следи внимательно за очередностью. Например если новый слайд четвертый по счету, вставляй полное изображения четвертым по счету в диве «slides» и миниатюру четвертой по счету в списке миниатюр (10-я строка).
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | #gallery{ /* CSS3 Box Shadow */ -moz-box-shadow:0 0 3px #AAAAAA; -webkit-box-shadow:0 0 3px #AAAAAA; box-shadow:0 0 3px #AAAAAA; /* CSS3 Rounded Corners */ -moz-border-radius-bottomleft:4px; -webkit-border-bottom-left-radius:4px; border-bottom-left-radius:4px; -moz-border-radius-bottomright:4px; -webkit-border-bottom-right-radius:4px; border-bottom-right-radius:4px; border:1px solid white; background:url(panel.jpg) repeat-x bottom center #ffffff; /* The width of the gallery */ width:920px; overflow:hidden; } #slides{ /* This is the slide area */ height:400px; /* jQuery changes the width later on to the sum of the widths of all the slides. */ width:920px; overflow:hidden; } .slide{ float:left; } #menu{ /* This is the container for the thumbnails */ height:45px; } ul{ margin:0px; padding:0px; } li{ /* Every thumbnail is a li element */ width:60px; display:inline-block; list-style:none; height:45px; overflow:hidden; } li.inact:hover{ /* The inactive state, highlighted on mouse over */ background:url(pic_bg.png) repeat; } li.act,li.act:hover{ /* The active state of the thumb */ background:url(active_bg.png) no-repeat; } li.act a{ cursor:default; } .fbar{ /* The left-most vertical bar, next to the first thumbnail */ width:2px; background:url(divider.png) no-repeat right; } li a{ display:block; background:url(divider.png) no-repeat right; height:35px; padding-top:10px; } a img{ border:none; } #main{ /* The main container */ margin:15px auto; text-align:center; width:920px; position:relative; } |
Мы использовали некоторые специфические свойства CSS3. Например тень по углам прямоугольника (Box Shadow) и закругление углов прямоугольника (Rounded Corners). Под прямоугольником мы подразумеваем один из основных дивов «gallery», внутри которого и расположена галерея.
Вот и всё. За три простых шага мы создали действительно красивую галерею в стиле Apple. Ее без особых проблем можно внедрить в любой сайт. Модернизируй и развивай галерею так, как требует того дизайн твоего сайта. Основа перед тобой.













Опубликовал extezy
Рубрика: CMS