за един проект ми трябваше бързо да направя галерия от снимки. собственикът на сайта много беше харесал флаш-галерията, която видял еди-къде-си. до мен поръчката достигаше през посредник, което правеше нещата доста сложни. защо ли? ами защото не знам флаш. та обясних на посредника (което не беше особено лесно), че няма как да взема готова флаш галерия и „само малко тука промени 2-3 неща“, след като никога не съм виждал сорс на флаш-приложение. все пак се помири с идеята, че няма как да стане, а и не искаше да търси човек с флаш познания (сигурно защото проектът беше „за вчера“, а хората вземат доста пари за експресни поръчки). long story short (too late for that?), започнах да пиша галерията на html/jquery. първо порових в примерите (явно не достатъчно, понеже накрая дизайнерката ми каза, че
имало готово решение) и като не намерих нищо, запретнах виртуални ръкави.
целта на задачата беше да има една централна снимка (текущата) и отдолу в една лента да има малки версии (thumbnails) на всички останали снимки в дадената галерия/категория, като се виждат само 3-4 от тях, а останалите се появяват, като се задържи мишката над лентата – ако я задържиш над лявата част, тръгват в едната посока, над дясната – в другата. (слагам screenshot, ако някой не ме е разбрал)
като всеки проект, който ползва jquery, първата работа е да се добави библиотеката.
-
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
след това зареждам адресите на картинките, които ще показвам на екрана в масив $images, който изглежда примерно така:
$images = array(
-
array("img" => "p1.jpg", "thb" => "p1_t.jpg"),
-
array("img" => "p2.jpg", "thb" => "p2_t.jpg"),
-
array("img" => "p3.jpg", "thb" => "p3_t.jpg"),
-
array("img" => "p4.jpg", "thb" => "p4_t.jpg"),
-
array("img" => "p5.jpg", "thb" => "p5_t.jpg"),
-
array("img" => "p6.jpg", "thb" => "p6_t.jpg"),
-
array("img" => "p7.jpg", "thb" => "p7_t.jpg"),
-
array("img" => "p8.jpg", "thb" => "p8_t.jpg"),
-
);
във финалната версия този блок съм го заменил с обръщение към базата-данни, от където реално „зареждам“ картинките. след тези предварителни приготовления, можем да изведем и самите картинки:
-
<div id="main_pic_container">
-
<div id="main_pic"><img src="<?=$images[0]['img']?/>" /></div>
-
</div>
-
<br /><br />
-
<div id="ths" class="pics">
-
< ?php foreach($images as $id => $img): ?>
-
<img style="top:0; left:<?=$id*128?/>px;" src="< ?=$img['thb']?>" />
-
< ?php endforeach; ?>
-
</div>
за улеснение за основна картинка ползвам първата от масива. Continue reading »