ไม่รู้จะตั้งหัวข้ออย่างไร ก็เลยตั้งเป็นไทยคำ อังกฤษคำ เสียเลย Popup Image ไปถามลุงกูแล้ว ลุงกู(google)... แกบอกว่าแปลว่า ภาพป๊อปอัพ นั่นเอง บทความนี้เป็นวิธีการทำภาพป๊อปอัพ ด้วยการดึงข้อมูลรูปภาพออกมาจากฐานข้อมูล มาแสดงแบบง่ายๆ ที่เขาเรียกว่า Simple ๆ อะไรนี่แหละ แต่ก็น่าสนใจไม่น้อย ที่ท่านสามารถนำไปพัฒนาต่อได้....
เริ่ม...
บทนี้มีไฟล์ 3 ไฟล์คือ
jquery.js
config.php
popimageonclick.php
สร้างฐานข้อมูลสำหรับทดสอบ SQL
CREATE TABLE `images` ( `id_image` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id_image`) );
ไฟล์ popimageonclick.php
นำเข้า jquery
<script type="text/javascript" src="jquery.js"></script>
ผมจะดึงข้อมูลรูปภาพขึ้นมาแสดงก่อนด้วยโค้ดนี้ จุดสำคัญท่านจะต้องแสดงภาพออกมาให้ได้ก่อน ที่จะไปเขียน
โค้ดเพิ่มเติมในส่วนอื่นๆ
<?php include 'config.php'; $sql = "select * from images"; $result = mysql_query($sql); $num = mysql_num_rows($result); $i=0; while($i<$num){ $row = mysql_fetch_array($result); $id_image = $row[id_image]; $image = $row[image]; $title = $row[title]; echo "<a href ='#' class='popup' relid='popimage' id='imageleft'/>"; echo "<img border='0' height='60' src='upload/$image' img ='$image'/>"; echo "</a>"; $i++; } ?>
ตรงนี้มีข้อสังเกตุ 2 จุดคือ
relid='popimage' กับ img='$image'
กำหนดมาจากใหน ตอบ ไม่ได้กำหนดมาจากใหน แต่กำหนดขึ้นเองในกรณีที่เราไม่มีตัว select แบบ
Attribute Equals Selector เช่น id หรือ class เพื่อให้ jquery สามารถค้นหาข้อมูลผ่าน
Selector นี้ได้
จากนั้นผมก็สร้าง tag div ขึ้นมาเพื่อเอาไว้แสดงรูปตอนป๊อปอัพ ดังนี้
<div class="popbox" id="popimage"></div> <div id="popfade"></div>
แสร็จแล้วก็มากำหนด javascript ให้กับการคลิกเมาว์ เพื่อแสดงภาพป๊อปอัพ ดังนี้
<script type="text/javascript"> $(document).ready(function() { $('a.popup').click(function() { var image = $(this).find('img').attr("img");//ค้นหาtag img เก็บค่าจาก seletor img var html = '<center><div id="borderimg">'; html +='<div id="showimage"><img src="upload/'+image+'"/>'; html +='</div></div></center>'; //กำหนดให้รูปไปแสดงที่ id popimage var showimage = document.getElementById('popimage').innerHTML= html; //เก็บค่าจาก seletor relid var popid = $(this).attr('relid'); $('#' + popid).fadeIn(); $('body').append('<div id="popfade"></div>'); $('#popfade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); //กำหนดให้รูปแสดงอยู่ตรงกลางจอภาพ var poptop = ($('#' + popid).height() + 10) / 2; var popleft = ($('#' + popid).width() + 10) / 2; $('#' + popid).css({ 'margin-top' : -poptop, 'margin-left' : -popleft }); }); //กำหนดให้รูปหายไปตอนคลิกเมาว์บนพื้นที่ว่าง $('#popfade').click(function() { $('#popfade, #popimage').fadeOut() return false; }); }); </script>
จากนั้นก็มากำหนด CSS ดังนี้
.popbox { width:auto; height:auto; background-repeat:no-repeat; display: none; float: left; position: fixed; top: 50%; left: 50%; z-index: 99999; -webkit-box-shadow: 0px 0px 20px #000; -moz-box-shadow: 0px 0px 20px #000; box-shadow: 0px 0px 20px #000; } #popfade { display: none; background: #000; position: fixed; left: 0; top: 0; width: 100%; height: 100%; opacity: .80; z-index: 9999; } #close img { text-decoration:none; } #close { width:50px; height:50px; position: absolute; float:right; } #showimage{ padding:10px; background: #dddddd; -webkit-box-shadow: 0px 0px 5px #000; -moz-box-shadow: 0px 0px 5px #000; box-shadow: 0px 0px 5px #000; } #borderimg{ border:6px solid #666666; -webkit-border-radius: 5px; -moz-border-radius: 5px; } #imageleft{ text-decoration:none; margin-left:10px; }
Code ที่แสร็จแล้ว
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>popup image demo</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $('a.popup').click(function() { var image = $(this).find('img').attr("img"); var html = '<center><div id="borderimg">'; html +='<div id="showimage"><img src="upload/'+image+'"/>'; html +='</div></div></center>'; var showimage = document.getElementById('popimage').innerHTML= html; var popid = $(this).attr('relid'); $('#' + popid).fadeIn(); $('body').append('<div id="popfade"></div>'); $('#popfade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); var poptop = ($('#' + popid).height() + 10) / 2; var popleft = ($('#' + popid).width() + 10) / 2; $('#' + popid).css({ 'margin-top' : -poptop, 'margin-left' : -popleft }); }); $('#popfade').click(function() { $('#popfade, #popimage').fadeOut() return false; }); }); </script> <style type="text/css"> .popbox { width:auto; height:auto; background-repeat:no-repeat; display: none; float: left; position: fixed; top: 50%; left: 50%; z-index: 99999; -webkit-box-shadow: 0px 0px 20px #000; -moz-box-shadow: 0px 0px 20px #000; box-shadow: 0px 0px 20px #000; } #popfade { display: none; background: #000; position: fixed; left: 0; top: 0; width: 100%; height: 100%; opacity: .80; z-index: 9999; } #close img { text-decoration:none; } #close { width:50px; height:50px; position: absolute; float:right; } #showimage{ padding:10px; background: #dddddd; -webkit-box-shadow: 0px 0px 5px #000; -moz-box-shadow: 0px 0px 5px #000; box-shadow: 0px 0px 5px #000; } #borderimg{ border:6px solid #666666; -webkit-border-radius: 5px; -moz-border-radius: 5px; } #imageleft{ text-decoration:none; margin-left:10px; } </style> </head> <body> <div class="popbox" id="popimage"></div> <div id="popfade"></div> <?php include 'config.php'; $sql = "select * from images"; $result = mysql_query($sql); $num = mysql_num_rows($result); $i=0; while($i<$num){ $row = mysql_fetch_array($result); $id_image = $row[id_image]; $image = $row[image]; $title = $row[title]; echo "<a href ='#' class='popup' relid='popimage' id='imageleft'/>"; echo "<img border='0' height='60' src='upload/$image' img ='$image'/>"; echo "</a>"; $i++; } ?> </body> </html>
บทความนี้ก็จบลงเพียงเท่านี้ครับ.......
0 ความคิดเห็น:
แสดงความคิดเห็น