EthaiDesign Community  

Go Back   EthaiDesign Community > Developer Forums > VB, C#, C+, C++, Java, Java Script

Reply
 
LinkBack Thread Tools
Old 28-01-2009, 08:54 AM   #1
HotDog
 
admin's Avatar
 
เป็นสมาชิกเมื่อ: Jan 2009
ที่อยู่: Bangkok
โพส: 167
Icon14 เขียน JavaScript สำหรับจัดการกับสไตล์ชีท

ขอบคุณบทความดีดีจาก
divland.com

เมื่อเราเขียน CSS มาจนถึงระดับหนึ่งแล้ว เราจะพบว่า CSS ก็คือการตกแต่งหน้าตาเว็บไซต์ ให้สวยงาม เป็นการแสดงผลเท่านั้น เหมือน HTML ไม่สามารถโต้ตอบกับผู้ใช้ได้เหมือน php asp เราจะทำอย่างไรหากต้องการให้ หน้าตาเว็บไซต์ ถูกกำหนดโดยผู้ใช้ เลือกสีกรอบได้ คลิกแล้วเปลี่ยนกรอบได้ ฟังดูน่าสนใจใช่มั้ยล่ะครับ

ในกรณีนี้ เราจะใช้ จาวาสคริป เข้ามาช่วยควบคุม ลองมาดูตัวอย่าง การทำ Toggle อย่างง่ายกันครับ

เริ่มต้นเรามี HTML ดังนี้

HTML Code:
<h2>Menu</h2>
<div id="abc" style="display:none";>
submenu
submenu
</div>
เราจะเขียน javascript เพื่อเปลี่ยน style ของ div ดังนี้

HTML Code:
<script type="text/javascript">
function toggle(obj) {
        var el = document.getElementById(obj);
        if ( el.style.display != ‘none’ ) {
                el.style.display = ‘none’;
        }
        else {
                el.style.display = ”;
        }
}
</script>

บรรทัดที่ 1 เป็นการประกาศว่าเราจะใช้ จาวาสคริป แล้ว
บรรทัดที่ 2 ประกาศฟังชั่น ชื่อ toggle รับค่า1 ค่า ให้ชื่อ obj (object) ละกัน
บรรทัดที่ 3 ประกาศตัวแปร 1 ตัว ชื่อ el ย่อมาจาก element ให้เท่ากับ document.getElementById(obj) แปลว่า ไปที่เอกสาร แล้วไป get ค่า โดยมองจาก id ที่ชื่อ (obj) <-- อันนี้เด๋วจะส่ง abc ใส่เข้ามา
บรรทัดถัดมา เป็นเงื่อนไข ถ้า el มี style และมี display ไม่เท่ากับ none ก็ให้ ใส่ื none เข้าไป ถ้ามี none อยู่แล้วก็ให้ display เป็น ค่าว่างเปล่าๆ

เราสามารถใช้ style. แล้วตามด้วย property ของ css ได้เลย เช่น el.style.background , el.style.font-size เพื่อกำหนด css

จากนั้น เพิ่มลิ้งเพื่อเรียกใช้ฟังชั่นที่ HTML ดังนี้

HTML Code:
<h2><a href="#" onclick="toggle(’abc’);return false">Menu</a></h2>
<div id="abc" style="display:none";>
submenu
submenu
</div>
ใส่ onclick="toggle(’abc’);" เพื่อ สั่งว่า เมื่อคลิกให้เรียกใช้ ฟังชั่น toogle โดยส่งค่า id ของ div คือ abc ไปแทนที่ obj

เมื่อกด ครั้งแรก เราส่งค่า abc เข้าไปที่มี display:none อยู่แล้ว javascript ก็จะเขียน style ให้ใหม่เป็น display:ค่าว่างๆ
พอกดครั้งที่สอง เราส่งค่าไปอีกครั้ง คราวนี้เป็นค่า display เปล่าๆ ไม่มี none ก็จะเข้าเงื่อนไข แรก javascript ก็จะเขียน style ให้ใหม่เป็น display:none

ส่วน return:false ใส่ไว้ เมื่อกดลิ้งค์ที่มี ค่าเป็น # หน้าเว็บจะไม่เด้งขึ้นไปบนสุด เป็นเทคนิคเล็กๆน้อยๆ

ตัวอย่างนี้อาจจะงงไปสักหน่อย สำหรับผู้ที่ไม่มีพื้นฐาน จาวาสคริปเลย ลองศึกษา จาวาสคริปสักหน่อย แล้วจะเข้าใจครับ สามารถ นำไปประยุกต์ใช้ได้อีกหลายอย่างเช่น ทำลิ้งค์ให้ผู้ใช้เลือกขนาดอักษรในหน้าเว็บได้ หรือ ทำลิ้งค์ให้ผู้ใช้ เลือกสี แบ็คกราวน์ทั้งหมดในหน้าเว็บได้

ตัวอย่างการทำงานครับ
http://www.divland.com/blog/wp-conte...08/toggle.html
__________________
Ethaidesign.com
The Communities Graphic & Developer free forums.

admin is offline   Reply With Quote
Old 27-08-2009, 03:07 PM   #2
สมาชิกบอร์ด
 
เป็นสมาชิกเมื่อ: Aug 2009
โพส: 39
Default

แจ่มครับ แต่ถ้าใช้ jquery ทำจะง่ายกว่านี้ อิอิ
__________________
Web Hosting 10GB ขึ้นไป ไม่จำกัดแบทวิท เริ่มต้นเพียง 499บาท/ปี จดโดเมน 350 บาท/ปี จดพร้อมเช่าโฮสต์ 299 บาท/ปี นึกถึง Hostคุณภาพบริการชั้นหนึ่ง นึกถึง HostNeverDie.com
izumi is offline   Reply With Quote
Old 30-01-2010, 04:58 AM   #3
mee
สมาชิกบอร์ด
 
เป็นสมาชิกเมื่อ: Jan 2010
โพส: 1
Default

อยากมีเว็บบอร์ดเป็นของ ตัวเองศึกษาดูแล้วก็ไม่ค่อยเข้า
mee is offline   Reply With Quote
Reply

คำค้น (Tags)
javascript กับ css, เขียน javascript

Thread Tools

ระดับการโพส
คุณ ไม่สามารถ โพสหัวข้อใหม่ได้
คุณ ไม่สามารถ โพสตอบกลับได้
คุณ ไม่สามารถ โพสไฟล์แนบได้
คุณ ไม่สามารถ แก้ไขโพสของคุณได้

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On

ไปยังฟอรั่ม


การตั้งการเวลาแบบ GMT +7. และเวลาในขณะนี้คือ 10:53 AM.


Forums design by: EthaiDesign.com. Copyright © 2004-2009. All right reserved.
เว็บไซต์ Ethaidesign.Com เป็นเพียงศูนย์กลางการเรียนรู้ของเหล่า Designers และ Programmers เป็นเว็บบอร์ดแลกเปลี่ยนความรู้ทั่วไป
ทางทีมงานไม่สามารถที่จะตรวจสอบเนื้อหาทุกอย่างโดยละเอียดได้ อันเกิดจากการโพสโดยสมาชิก หากพบเนื้อหาไม่เหมาะสมโปรดแจ้งทีมงานด่วน..


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24