<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jQuery, Ajax, PHP, JSON, XML, Web Technologies &#187; Plugins</title>
	<atom:link href="http://blog.chonla.com/category/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chonla.com</link>
	<description>คุยกันเรื่อง jQuery, Ajax, PHP, JSON, XML และ Web Technologies เป็นภาษาไทยกันดีกว่า</description>
	<lastBuildDate>Thu, 02 Sep 2010 18:43:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ปลั๊กอิน BBCode สำหรับ jQuery</title>
		<link>http://blog.chonla.com/2009/11/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-bbcode-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/</link>
		<comments>http://blog.chonla.com/2009/11/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-bbcode-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 10:33:23 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[Homemade Plugin]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Souce Code]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[BBCode]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Regular Expression]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=245</guid>
		<description><![CDATA[วันนี้ผมลองเขียน plugin แก้ขัดที่หายหน้าหายตาไปนานมาให้ลองกันครับ นั่นก็คือปลั๊กอินที่ใช้ render BBCode ครับ ใครที่เป็นนักโพสเว็บบอร์ดคงจะรู้จักกันดีว่า BBCode คืออะไร สำหรับใครที่ยังไม่รู้จักก็อ่านย่อหน้าถัดไปได้เลยครับ BBCode เราเรียกได้ว่าเป็น lightweighted markup language ใช้สำหรับจัดรูปแบบข้อความตามเว็บบอร์ดต่าง ๆ ครับ มีลักษณะของแท็กอยู่ในเครื่องหมายก้ามปู เช่น [b]ตัวหนา[/b] ครับ เจ้าตัว BBCode นี่เว็บบราวเซอร์มันไม่รู้จักครับ ต้องทำการแปลไปเป็น markup language ที่ใช้ทั่ว ๆ ไปก่อนครับ นั่นก็คือ HTML หรือ XHTML ครับ เช่น จาก [b]ตัวหนา[/b] จะถูกแปลงไปเป็น &#60;b&#62;ตัวหนา&#60;/b&#62; แล้วค่อยนำไปแสดงผลครับ จุดประสงค์หลัก ๆ ของ BBCode คือ เพื่อให้ผู้ใช้สามารถจัดรูปแบบข้อความได้ง่ายขึ้น รวมไปถึงเพื่อความปลอดภัยของการแสดงผลข้อความที่โพสโดยผู้ใช้ด้วยครับ เช่น การควบคุมการใช้งาน javascript การควบคุมให้ใช้ tag [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้ผมลองเขียน plugin แก้ขัดที่หายหน้าหายตาไปนานมาให้ลองกันครับ นั่นก็คือปลั๊กอินที่ใช้ render BBCode ครับ ใครที่เป็นนักโพสเว็บบอร์ดคงจะรู้จักกันดีว่า BBCode คืออะไร สำหรับใครที่ยังไม่รู้จักก็อ่านย่อหน้าถัดไปได้เลยครับ</p>
<p>BBCode เราเรียกได้ว่าเป็น lightweighted markup language ใช้สำหรับจัดรูปแบบข้อความตามเว็บบอร์ดต่าง ๆ ครับ มีลักษณะของแท็กอยู่ในเครื่องหมายก้ามปู เช่น [b]ตัวหนา[/b] ครับ เจ้าตัว BBCode นี่เว็บบราวเซอร์มันไม่รู้จักครับ ต้องทำการแปลไปเป็น markup language ที่ใช้ทั่ว ๆ ไปก่อนครับ นั่นก็คือ HTML หรือ XHTML ครับ เช่น จาก [b]ตัวหนา[/b] จะถูกแปลงไปเป็น &lt;b&gt;ตัวหนา&lt;/b&gt; แล้วค่อยนำไปแสดงผลครับ<br />
<span id="more-245"></span><br />
จุดประสงค์หลัก ๆ ของ BBCode คือ เพื่อให้ผู้ใช้สามารถจัดรูปแบบข้อความได้ง่ายขึ้น รวมไปถึงเพื่อความปลอดภัยของการแสดงผลข้อความที่โพสโดยผู้ใช้ด้วยครับ เช่น การควบคุมการใช้งาน javascript การควบคุมให้ใช้ tag ภายในข้อกำหนด เป็นต้น</p>
<p>เจ้าตัว BBCode เนี่ย มันไม่มีข้อกำหนดเป็นมาตรฐาน เพียงแค่มีการใช้งานโดยทั่วไปตามเว็บบอร์ดเวอร์ชั่นใหม่ ๆ ทั่วไปครับ รายละเอียดรูปแบบคำสั่ง สามารถตามไปดูในหัวข้ออ้างอิงท้ายบทความได้เลยครับ</p>
<p>ทีนี้มาดูกันว่าปลั๊กอินตัวนี้จะทำงานยังไงครับ</p>
<p>ง่าย ๆ ครับ แค่เรียก $(&lt;selector&gt;).bbcode(); เท่านั้นครับ เช่น</p>
<pre class="js">$("div").bbcode();</pre>
<p>ไอเดียของปลั๊กอินตัวนี้ผมได้มาจากตอนเขียนแก้บักการแสดงผล BBCode ให้เก็บเว็บไซต์หนึ่งครับ ปกติแล้วการ render จาก BBCode ไปเป็น HTML นั้น มักจะทำที่ Server และส่ง HTML ที่ได้มาให้บราวเซอร์แสดงผล แต่ผมต้องการที่จะลดโหลดฝั่ง Server ลง โดยจะย้ายการทำงานจากฝั่ง Server มาทำที่บราวเซอร์แทน</p>
<p>หลักการทำงานก็ไม่มีอะไรมากครับ ผมใช้วิธีการกำหนดค่า Pattern ในรูปแบบ Regular Expression และใช้ Regular Expression Engine ของ JavaScript ในการแสดงผลให้ถูกต้องเท่านั้นครับ</p>
<p>ลองไปดูที่ <a title="BBCode Plugin for jQuery" href="http://sandbox.chonla.com/bbcode/" target="_blank">LIVE DEMO</a> กันเลยครับ</p>
<p><span style="text-decoration: underline;">อ้างอิง</span></p>
<ul>
<li><span style="background-color: #ffffff;"><a title="BBCode" href="http://en.wikipedia.org/wiki/BBCode" target="_blank">http://en.wikipedia.org/wiki/BBCode</a></span></li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/11/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-bbcode-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>ปลั๊กอิน Multiple Checkboxes สำหรับ jQuery</title>
		<link>http://blog.chonla.com/2009/09/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-multiple-checkboxes-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/</link>
		<comments>http://blog.chonla.com/2009/09/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-multiple-checkboxes-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 18:00:38 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Souce Code]]></category>
		<category><![CDATA[Checkbox]]></category>
		<category><![CDATA[Homemade Plugin]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=218</guid>
		<description><![CDATA[เหมือนอย่างที่เคยเล่าให้ฟังในโพสต์ก่อนหน้านี้ครับว่าช่วงนี้ได้ลองทำปลั๊กอินสำหรับ jQuery ออกมาหลายตัว นี่ก็เป็นอีกตัวนึงครับ ได้แนวคิดมาจาก checkbox ใน gmail ครับ หลายคนอาจจะยังไม่รู้ว่า เราสามารถเลือกหลาย ๆ mail ใน gmail ได้โดยการกด Shift ค้างไว้แล้วคลิก มันดูเท่ไม่เบาครับ นอกจากนี้แล้วยังมีคุณสมบัติพื้นฐานของที่ checkbox ควรจะมี ซึ่งก็คือ เลือกทั้งหมด หรือไม่เลือกเลย ในปลั๊กอินตัวนี้ ผมทำให้มันสามารถทำได้อย่างที่ผมเล่ามา รวมถึงการทำ invert selection ด้วยครับ นั่นก็คือ การสลับที่เลือกไว้นั่นเองครับ วิธีการใช้งาน ก็ง่ายอย่างที่คิดนั่นแหละครับ $.multicheck(); // ใช้สั่งให้ selector ที่เลือกใช้งาน shift+click ได้ $.checkall(); // เลือกทั้งหมด $.checknone(); // ไม่เลือกเลย $.invertcheck(); // สลับที่เลือก ลองดูตัวอย่างที่ LIVE DEMO ได้เลยครับ [...]]]></description>
			<content:encoded><![CDATA[<p>เหมือนอย่างที่เคยเล่าให้ฟังในโพสต์ก่อนหน้านี้ครับว่าช่วงนี้ได้ลองทำปลั๊กอินสำหรับ jQuery ออกมาหลายตัว นี่ก็เป็นอีกตัวนึงครับ ได้แนวคิดมาจาก checkbox ใน gmail ครับ หลายคนอาจจะยังไม่รู้ว่า เราสามารถเลือกหลาย ๆ mail ใน gmail ได้โดยการกด Shift ค้างไว้แล้วคลิก มันดูเท่ไม่เบาครับ นอกจากนี้แล้วยังมีคุณสมบัติพื้นฐานของที่ checkbox ควรจะมี ซึ่งก็คือ เลือกทั้งหมด หรือไม่เลือกเลย ในปลั๊กอินตัวนี้ ผมทำให้มันสามารถทำได้อย่างที่ผมเล่ามา รวมถึงการทำ invert selection ด้วยครับ นั่นก็คือ การสลับที่เลือกไว้นั่นเองครับ<br />
<span id="more-218"></span></p>
<p>วิธีการใช้งาน ก็ง่ายอย่างที่คิดนั่นแหละครับ</p>
<pre name="code" class="js">
$.multicheck();  // ใช้สั่งให้ selector ที่เลือกใช้งาน shift+click ได้
$.checkall();    // เลือกทั้งหมด
$.checknone();   // ไม่เลือกเลย
$.invertcheck();   // สลับที่เลือก
</pre>
<p>ลองดูตัวอย่างที่ <a title="LIVE DEMO: Multiple Checkboxes plugin with jQuery" href="http://sandbox.chonla.com/multicheck" target="_blank">LIVE DEMO</a> ได้เลยครับ</p>
<p>ส่วน source code ที่เป็น minified ก็<a title="jQuery Plugin : MINIFIED MULTIPLE CHECKBOXES PLUGIN JS" href="http://sandbox.chonla.com/multicheck/jquery.multicheck.min.js" target="_blank">ดาวน์โหลดได้จากที่นี่เลยครับ</a></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/09/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-multiple-checkboxes-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ปลั๊กอิน Image rescale สำหรับ jQuery</title>
		<link>http://blog.chonla.com/2009/08/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-image-rescale-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/</link>
		<comments>http://blog.chonla.com/2009/08/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-image-rescale-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 19:49:08 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[Homemade Plugin]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Rescale]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=207</guid>
		<description><![CDATA[ช่วงนี้มีโอกาสได้ลองทำ plugin มาใช้กับ jQuery หลายตัวครับ Image rescale plugin นี่เป็นตัวหนึ่งครับ จริง ๆ แล้ว rescale image ด้วย jQuery มันไม่ใช่เรื่องใหญ่โต หรือยุ่งยากมากมายอะไร เพียงแค่ว่า ผมอยากได้แบบที่เป็น plugin ครับ และผมหามันไม่เจอ แค่นั้นเองครับ เลยบ้าพลัง เขียนเองซะเลยครับ หลักการง่าย ๆ กับการทำ rescale กับรูปภาพคือ การคง aspect ratio ของภาพไว้ นั่นคือ ถ้าภาพขนาด 4:3 หมายถึง กว้าง 800 pixels สูง 600 pixels เมื่อย่อลงไปเหลือขนาด กว้าง 200 pixels แล้ว จะต้องได้ความสูง 150 pixels (อัตราส่วนเดิมคือ 4:3 [...]]]></description>
			<content:encoded><![CDATA[<p>ช่วงนี้มีโอกาสได้ลองทำ plugin มาใช้กับ jQuery หลายตัวครับ Image rescale plugin นี่เป็นตัวหนึ่งครับ จริง ๆ แล้ว rescale image ด้วย jQuery มันไม่ใช่เรื่องใหญ่โต หรือยุ่งยากมากมายอะไร เพียงแค่ว่า ผมอยากได้แบบที่เป็น plugin ครับ และผมหามันไม่เจอ แค่นั้นเองครับ เลยบ้าพลัง เขียนเองซะเลยครับ<br />
<span id="more-207"></span><br />
หลักการง่าย ๆ กับการทำ rescale กับรูปภาพคือ การคง aspect ratio ของภาพไว้ นั่นคือ ถ้าภาพขนาด 4:3 หมายถึง กว้าง 800 pixels สูง 600 pixels เมื่อย่อลงไปเหลือขนาด กว้าง 200 pixels แล้ว จะต้องได้ความสูง 150 pixels (อัตราส่วนเดิมคือ 4:3 นั่นเอง)</p>
<p>หลังจากนั้น ก็มาถึงสิ่งที่ผมอยากให้ plugin ตัวนี้มี นั่นก็คือ การกำหนดความกว้าง หรือความสูงสูงสุด นั่นคือ ถ้าผมกำหนดให้ความกว้างที่มากที่สุดมีค่าเป็น 200 pixels และภาพต้นฉบับมีความกว้างเป็น 1024 pixels ภาพที่ย่อแล้ว จะเหลือความกว้างเป็น 200 pixels นั่นเอง</p>
<p>รูปแบบการใช้งาน</p>
<pre class="js">$.imgrescale(options);</pre>
<p>โดยที่ options ในตอนนี้มีแค่ตัวเดียวครับ คือ maxsize ดังนั้นถ้าต้องการกำหนดค่า maxsize ก็จะเรียกแบบนี้ครับ</p>
<pre class="js">$.imgrescale({maxsize:200});</pre>
<p>ลองดูตัวอย่างที่ <a title="LIVE DEMO: jQuery Image Rescale Plugin" href="http://sandbox.chonla.com/imgrescale" target="_blank">LIVE DEMO</a> ได้เลยครับ</p>
<p>สำหรับ source code ที่เป็น minified ก็<a title="jQuery Plugin : MINIFIED IMAGE RESCALE JS" href="http://sandbox.chonla.com/imgrescale/js/jquery.imgrescale.min.js" target="_blank">ดาวน์โหลดได้จากที่นี่เลยครับ</a></p>
<p>ใช้ดีอย่าลืม feedback แล้วบอกต่อนะครับ <img src='http://blog.chonla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>อ้างอิง</p>
<ul>
<li>Aspect Ratio: <a href="http://en.wikipedia.org/wiki/Aspect_ratio_(image)">http://en.wikipedia.org/wiki/Aspect_ratio_(image)</a></li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/08/%e0%b8%9b%e0%b8%a5%e0%b8%b1%e0%b9%8a%e0%b8%81%e0%b8%ad%e0%b8%b4%e0%b8%99-image-rescale-%e0%b8%aa%e0%b8%b3%e0%b8%ab%e0%b8%a3%e0%b8%b1%e0%b8%9a-jquery/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ทำ floating ads ไว้ใช้เอง</title>
		<link>http://blog.chonla.com/2009/07/%e0%b8%97%e0%b8%b3-scroll-ads-%e0%b9%84%e0%b8%a7%e0%b9%89%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%80%e0%b8%ad%e0%b8%87/</link>
		<comments>http://blog.chonla.com/2009/07/%e0%b8%97%e0%b8%b3-scroll-ads-%e0%b9%84%e0%b8%a7%e0%b9%89%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%80%e0%b8%ad%e0%b8%87/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 17:13:37 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[Homemade Plugin]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Souce Code]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[floating layers]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=201</guid>
		<description><![CDATA[เดิมที ผมได้โปรเจคจากผู้ว่าจ้างให้ทำ floating video เหมือนในเว็บ http://www.radiopublicity.com/ พอได้ลองเข้าไปดู code ที่เค้าเขียน รู้สึกว่ามันช่างซับซ้อนซ่อนเงื่อนเหลือเกิน ไม่ต้องพูดถึงเรื่อง reusability ครับ ยุ่งยากชิบ(หรือความจริงแล้ว ผมอาจจะโง่เกินกว่าจะเข้าใจ code อัน advanced ของมันก็ได้ครับ) พอนึกออกแล้วใช่มั๊ยครับ ว่าผมจะทำอะไรต่อไป&#8230; ใช่ครับ ทำเองครับ ส่วนผสมของผม หลีกหนีไม่พ้น jQuery ครับ ร่วมกับการเขียน plugin โดยมีคอนเซปท์ว่า จับอะไรก็ได้ บนเว็บ เอามาทำเป็น  floating layer ได้หมด แล้วก็เลื่อนตาม scrollbar ได้ด้วย คิดไปคิดมาต่อยอดได้อีกว่า จะให้มันอยู่ตรงไหนของหน้าจอก็ได้ snap ซ้าย snap ขวา หรือจะอยู่มันตรงกลาง บนล่าง ได้หมด โอ้ว ชักน่าตื่นเต้นแล้วสิ ในที่สุด ผมก็ลองทดสอบตัว prototype ของผมกับเว็บของผู้ว่าจ้างทันทีครับ (http://www.brendabence.com/media-room/) เออ พอใช้ได้แฮะ หลังจากนั้นก็เอามานั่งพัฒนาต่อยอดตามที่ตั้งใจไว้จนออกมาให้ได้ใช้งานกัน [...]]]></description>
			<content:encoded><![CDATA[<p>เดิมที ผมได้โปรเจคจากผู้ว่าจ้างให้ทำ floating video เหมือนในเว็บ <a href="http://www.radiopublicity.com/">http://www.radiopublicity.com/</a> พอได้ลองเข้าไปดู code ที่เค้าเขียน รู้สึกว่ามันช่างซับซ้อนซ่อนเงื่อนเหลือเกิน ไม่ต้องพูดถึงเรื่อง reusability ครับ ยุ่งยากชิบ(หรือความจริงแล้ว ผมอาจจะโง่เกินกว่าจะเข้าใจ code อัน advanced ของมันก็ได้ครับ) พอนึกออกแล้วใช่มั๊ยครับ ว่าผมจะทำอะไรต่อไป&#8230; ใช่ครับ ทำเองครับ</p>
<p>ส่วนผสมของผม หลีกหนีไม่พ้น jQuery ครับ ร่วมกับการเขียน plugin โดยมีคอนเซปท์ว่า จับอะไรก็ได้ บนเว็บ เอามาทำเป็น  floating layer ได้หมด แล้วก็เลื่อนตาม scrollbar ได้ด้วย คิดไปคิดมาต่อยอดได้อีกว่า จะให้มันอยู่ตรงไหนของหน้าจอก็ได้ snap ซ้าย snap ขวา หรือจะอยู่มันตรงกลาง บนล่าง ได้หมด โอ้ว ชักน่าตื่นเต้นแล้วสิ</p>
<p><span id="more-201"></span>ในที่สุด ผมก็ลองทดสอบตัว prototype ของผมกับเว็บของผู้ว่าจ้างทันทีครับ (<a href="http://www.brendabence.com/media-room/">http://www.brendabence.com/media-room/</a>) เออ พอใช้ได้แฮะ หลังจากนั้นก็เอามานั่งพัฒนาต่อยอดตามที่ตั้งใจไว้จนออกมาให้ได้ใช้งานกัน เสร็จแล้วก็ตั้งชื่อให้มันว่า scrollads plugin สำหรับ jQuery ครับ</p>
<p>รูปแบบการใช้งาน</p>
<pre name="code" class="js">
$.scrollads(options);
</pre>
<p>โดยที่ options เนี่ย จะใส่หรือไม่ใส่ก็ได้ครับ ถ้าใส่ก็จะเขียนอยู่ในรูปแบบ JSON โดยที่มี key ตามนี้เลยครับ</p>
<p>closer เป็น selector ที่ระบุปุ่มที่ใช้ปิดตัว layer นี้<br />
hsnap เป็นตัวบอกว่า layer จะอยู่ตำแหน่งไหนในแนวนอน มีค่าเป็น</p>
<ul>
<li>left ชิดซ้าย</li>
<li>center อยู่ตรงกลาง</li>
<li>right ชิดขวา</li>
<li>custom อยู่ตำแหน่งที่ระบุไว้ใน left</li>
<li>none อยู่ตำแหน่งตาม html</li>
</ul>
<p>vsnap เป็นตัวบอกว่า layer จะอยู่ตำแหน่งไหนในแนวตั้ง มีค่าเป็น</p>
<ul>
<li>top ชิดด้านบน</li>
<li>middle อยู่ตรงกลาง</li>
<li>bottom ชิดด้านล่าง</li>
<li>custom อยู่ตำแหน่งที่ระบุไว้ใน top</li>
<li>none อยู่ตำแหน่งตาม html</li>
</ul>
<p>เช่น</p>
<pre name="code" class="js">
$("#floatme").scrollads();
$("#floatme").scrollads({closer:".close"});
$("#floatme").scrollads({closer:".close",hsnap:"center"});
</pre>
<p>ลองไปดู <a title="LIVE DEMO: Floating Layer" href="http://sandbox.chonla.com/scrollads/" target="_blank">LIVE DEMO</a> กันดีกว่าครับ</p>
<p>สำหรับ source code ตัวที่เป็น minified <a title="jQuery Plugin : MINIFIED FLOATING LAYER JS" href="http://sandbox.chonla.com/scrollads/jquery.scrollads.min.js" target="_blank">สามารถดาวน์โหลดได้จากที่นี่ครับ</a></p>
<p>ใช้ดีอย่าลืมมา feedback แล้วบอกต่อนะครับ <img src='http://blog.chonla.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>อัพเดท วันที่ 6 สิงหาคม 2552<br />
+ ผมได้เพิ่ม option smooth ลงไปครับ เพื่อให้ scroll ได้ smooth ขึ้นครับ ถ้าไม่ใส่มันก็จะเลื่อนปึ๊ด ๆ แบบเดิม แต่ถ้าใส่ แล้วกำหนดเป็น &#8220;true&#8221; มันก็จะหยอด effect ลงไปหน่อย ทำให้เลื่อนแล้วดูเนียน ๆ ครับ ลองดูได้ครับ ขอบคุณครับ</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/07/%e0%b8%97%e0%b8%b3-scroll-ads-%e0%b9%84%e0%b8%a7%e0%b9%89%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%80%e0%b8%ad%e0%b8%87/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>jTemplates, Template Engine ของ jQuery</title>
		<link>http://blog.chonla.com/2009/05/jtemplates-template-engine-%e0%b8%82%e0%b8%ad%e0%b8%87-jquery/</link>
		<comments>http://blog.chonla.com/2009/05/jtemplates-template-engine-%e0%b8%82%e0%b8%ad%e0%b8%87-jquery/#comments</comments>
		<pubDate>Tue, 19 May 2009 17:10:30 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[JSON]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Souce Code]]></category>
		<category><![CDATA[Template Engine]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jTemplate]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=149</guid>
		<description><![CDATA[ได้ไปอ่านบทความเกี่ยวกับ Template Engine ที่เว็บ jquerytips เป็น Template Engine ที่เป็น plugin ของ jQuery น่าสนใจดีครับ เลยเอามาแบ่งปันกัน jTemplate เป็น Template Engine ที่มีลักษณะการเขียน (Syntax) ที่เรียกได้ว่าลอกแบบกันมาจาก Smarty เลยทีเดียว ทำให้คนที่มีพื้นฐานของ Smarty อยู่แล้ว สามารถเรียนรู้ jTemplate ได้โดยง่าย ส่วนรูปแบบของข้อมูลที่รองรับก็จะอยู่ในรูปแบบของ JSON มาดูตัวอย่างการเขียนกันครับ ขั้นแรก ผมจะกำหนด data ที่จะใช้งานก่อนครับ var data = { id: 4, name: "User List", table: [ {id: 1, name: 'Anne', age: 22, mail: 'anne@domain.com'}, [...]]]></description>
			<content:encoded><![CDATA[<p>ได้ไปอ่านบทความเกี่ยวกับ Template Engine ที่เว็บ <a href="http://www.jquerytips.com" target="_blank">jquerytips</a> เป็น Template Engine ที่เป็น plugin ของ jQuery น่าสนใจดีครับ เลยเอามาแบ่งปันกัน<br />
<span id="more-149"></span><br />
jTemplate เป็น Template Engine ที่มีลักษณะการเขียน (Syntax) ที่เรียกได้ว่าลอกแบบกันมาจาก Smarty เลยทีเดียว ทำให้คนที่มีพื้นฐานของ Smarty อยู่แล้ว สามารถเรียนรู้ jTemplate ได้โดยง่าย ส่วนรูปแบบของข้อมูลที่รองรับก็จะอยู่ในรูปแบบของ JSON มาดูตัวอย่างการเขียนกันครับ</p>
<p>ขั้นแรก ผมจะกำหนด data ที่จะใช้งานก่อนครับ</p>
<pre class="js">var data = {
    id: 4,
    name: "User List",
    table: [
        {id: 1, name: 'Anne', age: 22, mail: 'anne@domain.com'},
        {id: 2, name: 'Amelie', age: 24, mail: 'amelie@domain.com'},
        {id: 3, name: 'Polly', age: 18, mail: 'polly@domain.com'},
        {id: 4, name: 'Alice', age: 26, mail: 'alice@domain.com'},
        {id: 5, name: 'Martha', age: 25, mail: 'martha@domain.com'}
    ],
    toString: function() {
        return this.name.bold() + ' (count: ' + this.table.length + ')';
    }
};</pre>
<p>เสร็จแล้วก็มากำหนด Template</p>
<pre class="js">{#template MAIN}
&lt;div id="header"&gt;{$T.name}&lt;/div&gt;
&lt;table&gt;
{#foreach $T.table as r}
    {#include row root=$T.r}
{#/for}
&lt;/table&gt;
{#/template MAIN}

{#template row}
&lt;tr bgcolor="{#cycle values=['#AAAAEE','#CCCCFF']}"&gt;
    &lt;td&gt;{$T.name.bold()}&lt;/td&gt;
    &lt;td&gt;{$T.age}&lt;/td&gt;
    &lt;td&gt;{$T.mail.link('mailto:'+$T.mail)}&lt;/td&gt;
&lt;/tr&gt;
{#/template row}</pre>
<p>ที่เหลือก็แค่เรียกใช้งาน plugin ตัวนี้เท่านั้นเองครับ ง่าย ๆ</p>
<pre class="js">$("#result").setTemplate($("textarea").text()).processTemplate(data);</pre>
<p>ลองไปดูตัวอย่างที่ <a title="LIVE DEMO : jTemplate for jQuery" href="http://sandbox.chonla.com/jtemplate" target="_blank">LIVE DEMO</a> ได้เลยครับ</p>
<p>แหล่งอ้างอิงและ API</p>
<ul>
<li><a href="http://jtemplates.tpython.com/">http://jtemplates.tpython.com/</a></li>
<li><a href="http://www.jquerytips.com/2008/12/07/jtemplate-template-engine-in-javascript/">http://www.jquerytips.com/2008/12/07/jtemplate-template-engine-in-javascript/</a></li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/05/jtemplates-template-engine-%e0%b8%82%e0%b8%ad%e0%b8%87-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>แสดงภาพ Panorama กับ jQuery</title>
		<link>http://blog.chonla.com/2008/10/180-%e0%b8%ad%e0%b8%87%e0%b8%a8%e0%b8%b2-panorama-%e0%b8%81%e0%b8%b1%e0%b8%9a-jquery/</link>
		<comments>http://blog.chonla.com/2008/10/180-%e0%b8%ad%e0%b8%87%e0%b8%a8%e0%b8%b2-panorama-%e0%b8%81%e0%b8%b1%e0%b8%9a-jquery/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 07:46:35 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[Homemade Plugin]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Dimension]]></category>
		<category><![CDATA[Panorama]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=46</guid>
		<description><![CDATA[มีงานจ้างชิ้นนึง ให้ผมทำการแสดงผลภาพ Panorama บนเว็บ จะใช้อะไรก็ได้ ไอ้เราก็ถนัด Flash ซะด้วย ไม่ต้องพูดถึง (ประชด)&#8230; ลังเลอยู่ไม่นาน (ประมาณ 5 วินาที) ตัดสินใจลองของด้วย jQuery ทันที อุปกรณ์ที่จำเป็น แน่นอนก็คือ jQuery และอุปกรณ์เสริมคือ dimension สำหรับ jQuery ที่เหลือคือ ทำ Plugin สำหรับ jQuery ขึ้นมาตัวนึง เพื่อตอบโจทย์ดังนี้ สามารถแสดงภาพ Panorama แบบไม่ต้องวนได้ การเลื่อนภาพ ให้มีปุ่ม เมื่อเอาเมาส์ไปวาง ภาพจะเลื่อนอัตโนมัติ หลังจากที่ได้โจทย์ ก็เลยทำการเพิ่มโจทย์ให้กับตัวเองลงไปอีกนิด เพื่อเพิ่มดีกรีัความมันส์ ใน 1 หน้า ต้องสามารถวาง Panorama ได้หลายภาพ ปุ่ม 1 ปุ่ม จะ Control ภาพ Panorama ได้กี่ภาพก็ได้ [...]]]></description>
			<content:encoded><![CDATA[<p>มีงานจ้างชิ้นนึง ให้ผมทำการแสดงผลภาพ Panorama บนเว็บ จะใช้อะไรก็ได้ ไอ้เราก็ถนัด Flash ซะด้วย ไม่ต้องพูดถึง (ประชด)&#8230; ลังเลอยู่ไม่นาน (ประมาณ 5 วินาที) ตัดสินใจลองของด้วย jQuery ทันที</p>
<p><span id="more-46"></span></p>
<p>อุปกรณ์ที่จำเป็น แน่นอนก็คือ jQuery และอุปกรณ์เสริมคือ dimension สำหรับ jQuery ที่เหลือคือ ทำ Plugin สำหรับ jQuery ขึ้นมาตัวนึง เพื่อตอบโจทย์ดังนี้</p>
<ol>
<li>สามารถแสดงภาพ Panorama แบบไม่ต้องวนได้</li>
<li>การเลื่อนภาพ ให้มีปุ่ม เมื่อเอาเมาส์ไปวาง ภาพจะเลื่อนอัตโนมัติ</li>
</ol>
<p>หลังจากที่ได้โจทย์ ก็เลยทำการเพิ่มโจทย์ให้กับตัวเองลงไปอีกนิด เพื่อเพิ่มดีกรีัความมันส์</p>
<ol>
<li>ใน 1 หน้า ต้องสามารถวาง Panorama ได้หลายภาพ</li>
<li>ปุ่ม 1 ปุ่ม จะ Control ภาพ Panorama ได้กี่ภาพก็ได้</li>
<li>ปุ่มหลาย ๆ ปุ่ม จะ Control ภาพ Panorama ภาพเดียวก็ได้</li>
<li>ปุ่ม จะเป็นอะไรก็ได้ จะเป็น Text หรือ รูปภาพก็ได้</li>
</ol>
<p>งานนี้ dimension ช่วยลดภาระได้มาก ที่เหลือก็เป็นเรื่องของการเปลี่ยนแปลง stylesheet ตอน runtime เท่านั้น งานเลยออกมาอย่างที่แสดงใน <a title="LIVE DEMO : Panorama using jQuery" href="http://sandbox.chonla.com/pano180/" target="_blank">LIVE DEMO</a></p>
<p>ใครสนใจ View Source แล้ว Copy Code ไปใช้ได้เลยครับ ไม่หวง ผมทำ JSPack ไว้ เอาไปแกะเองนะครับ</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2008/10/180-%e0%b8%ad%e0%b8%87%e0%b8%a8%e0%b8%b2-panorama-%e0%b8%81%e0%b8%b1%e0%b8%9a-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
