แกลเลอรี่ คำนี้ไม่ต้องอธิบายกันให้เมื่อยเม็ดไข่ข้างซ้าย เพราะเป็นที่ทราบกันดีอยู่แล้วว่า มันก็คือห้องภาพ โค้ดตัวนี้เป็น jQuery ปลั๊กอิน ที่ใช้งานง่าย สิ่งที่ผมชอบมากที่สุดก็คือ ไอ้คนไร้ศิลปะในหัวอย่างผม เอามันมาใช้พวกยังชมว่าทำได้ไง ดูดีมีคลาส ผมไม่ได้บอกไปหรอกครับว่า ไม่ได้ทำอะไรเล๊ย มันมาของมันยังงั้นอยู่แล้ว ถ้าจะชมก็ต้องชมคนสร้างปลั๊กอินตัวนี้ ที่ทำออกมาดูดี
พูดมากก็เปลืองน้ำในปากมาก มาดู
หลังจากดู Live Demo แล้วก็เป็นธรรมเนียม ที่จะต้องบอกกล่าวกันว่า ถ้าถูกใจก็เดินตามหลังมาครับ ผมจะอธิบายวิธีใช้ให้
1. ดาวน์โหลดไฟล์ที่จำเป็น ก่อน แล้วแตกซิป ออก
2. เริ่มเขียนโค้ด include js เข้ามา
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="js/jquery.galleria.js"></script> |
3. include css เข้ามา
<link href="css/galleria.css" rel="stylesheet" type="text/css" > |
4. โครงสร้าง html
<ul class="gallery"> <li><img src="http://lh3.ggpht.com/_MJkDRxwRrPU/So_xjxVw3KI/AAAAAAAACgk/1yfN4MGBcs4/s800/WALLPAPER_0514.jpg" ></li> <li class="active"><img src="http://lh6.ggpht.com/_MJkDRxwRrPU/So_xkao54wI/AAAAAAAACgo/2wyH63Yw3X0/s800/WALLPAPER_0506.jpg" ></li> <li><img src="http://lh3.ggpht.com/_MJkDRxwRrPU/So_x2ZnymlI/AAAAAAAACh0/VJrVGghd9HY/s800/WALLPAPER_1222.jpg" ></li> </ul> |
ใช้แท็ก ul class gallery แล้วก็เก็บภาพแต่ละภาพไว้ในแท็ก li ถ้าท่านต้องการจะให้มีคำอธิบายรายละเอียดภาพด้วยก็ให้ใส่ไว้ใน attribute title ของรูปภาพ
<img title="น่ารักจังเลย" src="http://lh3.ggpht.com/_MJkDRxwRrPU/So_x2ZnymlI/AAAAAAAACh0/VJrVGghd9HY/s800/WALLPAPER_1222.jpg" > |
และถ้าต้องการให้ภาพไหนเป็นภาพ default (แสดงก่อนคนอื่นเมื่อรันโค้ด) ให้ใส่ class=”active” ไว้ในแท็ก li ที่เก็บภาพ
5. โค้ด jquery ปั้น โครงสร้าง html เมื่อกี้ให้เป็นแกลเลอรี่อันสวยงาม
<script type="text/javascript"> jQuery(function($) { $('ul.gallery').galleria({ history : true, // activates the history object for bookmarking, back-button etc. clickNext : true, // helper for making the image clickable insert : '#main_image', // the containing selector for our main image onImage : function(image,caption,thumb) { // let's add some image effects for demonstration purposes // fade in the image & caption if(! ($.browser.mozilla && navigator.appVersion.indexOf("Win")!=-1) ) { // FF/Win fades large images terribly slow image.css('display','none').fadeIn(1000); } caption.css('display','none').fadeIn(1000); // fetch the thumbnail container var _li = thumb.parents('li'); // fade out inactive thumbnail _li.siblings().children('img.selected').fadeTo(500,0.3); // fade in active thumbnail thumb.fadeTo('fast',1).addClass('selected'); // add a title for the clickable image image.attr('title','Next image >>'); }, onThumb : function(thumb) { // thumbnail effects goes here // fetch the thumbnail container var _li = thumb.parents('li'); // if thumbnail is active, fade all the way. var _fadeTo = _li.is('.active') ? '1' : '0.3'; // fade in the thumbnail when finnished loading thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500); // hover effects thumb.hover( function() { thumb.fadeTo('fast',1); }, function() { _li.not('.active').children('img').fadeTo('fast',0.3); } // don't fade out if the parent is active ) } }); }); </script> |
ผมจะไม่อธิบายว่า แต่ละคำสั่งหมายความว่าไง แต่จะบอกว่าเวลาใช้งานจริงไม่ต้องสนใจมันมากครับ ก้อปแล้วก็วางโลด ผมเองเวลาจะใช้ผมก็ก้อปครับ ไม่ได้ใช้มันบ่อยนัก ( อันที่จริงหลักการก้อปแล้ววางนี่คล้ายๆหลักการ OOP เชียวนะ ที่บอกว่าไม่ต้องสนใจว่าข้างในเขียนยังไง แต่ให้สนใจว่ามันใช้งานยังไง เท่านั้น)
โค้ดทั้งหมด :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="js/jquery.galleria.js"></script> <link href="css/galleria.css" rel="stylesheet" type="text/css" > <script type="text/javascript"> jQuery(function($) { $('ul.gallery').galleria({ history : true, // activates the history object for bookmarking, back-button etc. clickNext : true, // helper for making the image clickable insert : '#main_image', // the containing selector for our main image onImage : function(image,caption,thumb) { // let's add some image effects for demonstration purposes // fade in the image & caption if(! ($.browser.mozilla && navigator.appVersion.indexOf("Win")!=-1) ) { // FF/Win fades large images terribly slow image.css('display','none').fadeIn(1000); } caption.css('display','none').fadeIn(1000); // fetch the thumbnail container var _li = thumb.parents('li'); // fade out inactive thumbnail _li.siblings().children('img.selected').fadeTo(500,0.3); // fade in active thumbnail thumb.fadeTo('fast',1).addClass('selected'); // add a title for the clickable image image.attr('title','Next image >>'); }, onThumb : function(thumb) { // thumbnail effects goes here // fetch the thumbnail container var _li = thumb.parents('li'); // if thumbnail is active, fade all the way. var _fadeTo = _li.is('.active') ? '1' : '0.3'; // fade in the thumbnail when finnished loading thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500); // hover effects thumb.hover( function() { thumb.fadeTo('fast',1); }, function() { _li.not('.active').children('img').fadeTo('fast',0.3); } // don't fade out if the parent is active ) } }); }); </script> <title>Galleria</title> </head> <body> <ul class="gallery"> <li><img src="http://lh3.ggpht.com/_MJkDRxwRrPU/So_xjxVw3KI/AAAAAAAACgk/1yfN4MGBcs4/s800/WALLPAPER_0514.jpg" ></li> <li class="active"><img src="http://lh6.ggpht.com/_MJkDRxwRrPU/So_xkao54wI/AAAAAAAACgo/2wyH63Yw3X0/s800/WALLPAPER_0506.jpg" ></li> <li><img src="http://lh3.ggpht.com/_MJkDRxwRrPU/So_x2ZnymlI/AAAAAAAACh0/VJrVGghd9HY/s800/WALLPAPER_1222.jpg" ></li> </ul> </body> </html> |
ข้อมูลเพิ่มเติม : http://devkick.com/lab/galleria/
mrsitti says:
15/09/2552 at 15/09/2552
ชุดนี้ ทั้งโค้ดทั้งภาพ โดนใจสุดๆ ครับ
… แต่ภาพประกอบสุดท้ายของชุดนี้ ผมว่าน่าเป็นปัญหากับเม็ดไข่ข้างซ้ายแล้วแหละขอรับท่าน….อิอิอิ
ขอบพระคุณอย่างสูงครับ
administrator says:
15/09/2552 at 15/09/2552
ตอนทำ Live Demo ถึงว่ารู้สึกปวดตุบๆ
jirasak says:
29/09/2552 at 29/09/2552
ผมชอบสำเนียงและลีลาการเปรียบและถ่ายทอดของอ่ะ คิคิคิ เจ๋งดี ตอนนี้ขอแค่อ่านและเรียนรู้ไปก่อนคับ ไม่ค่อยรู้เรื่องเท่าไหร่
jirasak says:
29/09/2552 at 29/09/2552
อยากทำเป้น
administrator says:
30/09/2552 at 30/09/2552
จริงๆแล้ว การใช้งานไม่ยากเลยครับ ลองนั่งพิจารณาสักนิดนิดหน่อย ก็จะเข้าใจ
สด says:
07/10/2552 at 07/10/2552
ทำแล้ว background เป็นสีดำ ถ้าต้องการเปลี่ยนเป็นสีอื่น ต้องแก้ตรงไหนครับ
พยายามแล้ว ยังไม่ได้อะครับ
ช่วยหน่อยนะครับ
administrator says:
08/10/2552 at 08/10/2552
เปิดไฟล์ css/galleria.css แก้ตรง
body{background:black;}
ถ้าอยากให้เป็นสีแดง
body{background:red;}
หรือจะใส่โค้ดสีก็ได้ครับ
body{background:#FF0000;}
rasher says:
16/12/2552 at 16/12/2552
ว้าวมาเจอที่นี้รู้สึกเป็นปัญญาชนขึ้นเยอะเลยครับ
ถูกใจจริงๆครับ
namenaza says:
27/03/2554 at 27/03/2554
มีข้อสงสัยว่า…ถ้าต้องการให้มันโชว์เลยในหน้าเว็ป โดยที่เรามีเทมเพจส่วนอื่นๆอยู่แล้ว แล้วเราไปแทรกภาพส่วนนี้เข้าไป ต้องทำยังไงบ้างอ่าคร้าบ
ปล.พอดีลองเอา script ไปแทรกแล้ว มันมันยังออกมาเป็นภาพนิ่งๆ ซึ่งจากไฟล์ที่ให้โหลด เหมือนกับว่าต้องเป็นผ่าน gallria.html เอาอะคร้าบ ถึงจะแสดงผลออกมา
ขอบคุณคร้าบ
mrsitti says:
28/03/2554 at 28/03/2554
อาการนี้ผมเคยเจอครับ เกิดจากไฟล์ Jquery หรือไม่ก็ CSS แทรกซ้ำกัน ทำให้เกิด “การตำกันของสคริ๊ป” ลองเช็คดูนะครับ