Tag: HTML5

  • สร้าง UI หน้าเว็บแบบ Timeline ด้วย HTML+CSS

    เนื่องจากระบบที่กำลังพัฒนาอยู่ มีความต้องการแสดงผลข้อมูลในรูปแบบ Timeline ดังรูป

    เมื่อลองหาแนวทางดูพบว่ามี how to ที่เว็บไซต์ https://www.w3schools.com/howto/howto_css_timeline.asp ลองนำมาประยุกต์ใช้ โดยปรับสี เพิ่มเงา และส่วนแสดงผลรูป และไอคอนเข้าไป โดยใช้ https://getbootstrap.com/ เวอร์ชัน 5 เพื่อช่วยในการจัดตำแหน่งเนื้อหาด้านใน ก็จะได้ CSS และ HTML สำหรับนำไปใช้ในเว็บไซต์ดังนี้

    
    CSS (ตัด media query ออก เนื่องจากใช้ flex box ช่วยในการทำ responsive อยู่แล้ว)
    
    .timeline {
        position: relative;
        /*max-width: 1200px;*/
        margin: 0 auto;
    }
    
        .timeline::after {
            content: '';
            position: absolute;
            width: 6px;
            background-color: #977c44;
            top: 0;
            bottom: 0;
            left: 50%;
            margin-left: -3px;
        }
    
    .timeline-container {
        padding: 10px 40px;
        position: relative;
        background-color: inherit;
        width: 50%;
    }
    
        .timeline-container::after {
            content: '';
            position: absolute;
            width: 25px;
            height: 25px;
            right: -12px;
            background-color: white;
            border: 4px solid #FF9F55;
            top: 15px;
            border-radius: 50%;
            z-index: 1;
        }
    
    .timeline-left {
        left: 0;
    }
    
    .timeline-right {
        left: 50%;
    }
    
    .timeline-left::before {
        content: " ";
        height: 0;
        position: absolute;
        top: 22px;
        width: 0;
        z-index: 1;
        right: 30px;
        border: medium solid white;
        border-width: 10px 0 10px 10px;
        border-color: transparent transparent transparent white;
    }
    
    .timeline-right::before {
        content: " ";
        height: 0;
        position: absolute;
        top: 22px;
        width: 0;
        z-index: 1;
        left: 30px;
        border: medium solid white;
        border-width: 10px 10px 10px 0;
        border-color: transparent white transparent transparent;
    }
    
    .timeline-right::after {
        left: -12px;
    }
    
    .timeline-content {
        padding: 20px 30px;
        background-color: white;
        position: relative;
        border-radius: 6px;
    }

    HTML โดยในตัวอย่างได้นำโครงสร้าง html page และ ส่วนแสดงอีโมไอคอนออกเพื่อให้อ่านง่าย เห็นโครงสร้าง html ของ timeline ชัดเจน และต้องมีรูปอยู่ที่โฟลเดอร์ images (ภาพประกอบเนื้อหาของท่านเอง)

    /*Include Bootstrap 5*/
    <link href="css/bootstrap.min.css" rel="stylesheet" />
    
    <div class="timeline">
        <div class="timeline-container timeline-left">
            <div class="timeline-content shadow-lg">
                <div class="d-flex justify-content-between align-items-baseline">
                    <img src="/images/location01.jpg" class="rounded-3 img-shadow" width="150" height="150" />
                    <h3 class="text-brown text-shadow">พ.ศ. 1601-1700</h3>
                </div>
                <p>อุทยานประวัติศาสตร์พระนครศรีอยุธยา สัมผัสความรุ่งเรืองของกรุงศรีอยุธยา อดีตราชธานีที่ปกครองแผ่นดินมายาวนานถึง 417 ปี ภายในมีโบราณสถานมากมายน่าเที่ยว ทั้ง พระราชวังหลวง วัดพระศรีสรรเพชญ์ วัดราชบูรณะ วัดมหาธาตุ วัดไชย...</p>
            </div>
        </div>
        <div class="timeline-container timeline-right">
            <div class="timeline-content shadow-lg">
                <div class="d-flex justify-content-between align-items-baseline">
                    <img src="/images/location02.jpg" class="rounded-3 img-shadow" width="150" height="150" />
                    <h3 class="text-brown text-shadow">พ.ศ. 1601-1700</h3>
                </div>
                <p>อุทยานประวัติศาสตร์พนมรุ้ง ปราสาทหินพนมรุ้งเป็นโบสถ์พราหมณ์ลัทธิไศวะ มีการบูรณะก่อสร้างต่อเนื่องกันมาหลายสมัย ตั้งแต่ประมาณพุทธศตวรรษที่ 15 ถึงพุทธศตวรรษที่ 17 และในพุทธศตวรรษที่ 18 พระเจ้าชัยวรมันที่ 7 แห่ง...</p>
            </div>
        </div>
        <div class="timeline-container timeline-left">
            <div class="timeline-content shadow-lg">
                <div class="d-flex justify-content-between align-items-baseline">
                    <img src="/images/location01.jpg" class="rounded-3 img-shadow" width="150" height="150" />
                    <h3 class="text-brown text-shadow">พ.ศ. 1601-1700</h3>
                </div>
                <p>อุทยานประวัติศาสตร์พระนครศรีอยุธยา สัมผัสความรุ่งเรืองของกรุงศรีอยุธยา อดีตราชธานีที่ปกครองแผ่นดินมายาวนานถึง 417 ปี ภายในมีโบราณสถานมากมายน่าเที่ยว ทั้ง พระราชวังหลวง วัดพระศรีสรรเพชญ์ วัดราชบูรณะ วัดมหาธาตุ วัดไชย...</p>
            </div>
        </div>
        <div class="timeline-container timeline-right">
            <div class="timeline-content shadow-lg">
                <div class="d-flex justify-content-between align-items-baseline">
                    <img src="/images/location02.jpg" class="rounded-3 img-shadow" width="150" height="150" />
                    <h3 class="text-brown text-shadow">พ.ศ. 1792-2006</h3>
                </div>
                <p>อุทยานประวัติศาสตร์ศรีสัชนาลัย ศรีสัชนาลัย มีพัฒนาการมาแต่สมัยก่อนประวัติศาสตร์ตอนปลาย ประมาณ ๒,๓๐๐ – ๑,๕๐๐ ปีมาแล้ว โดยปรากฏชื่อควบคู่ไปกับเมืองสุโขทัยที่เป็นราชธานี สันนิษฐานว่าเมืองศรีสัชนาลัยมีความสำคัญในฐาน...</p>
            </div>
        </div>
    </div>

    ก็จะได้หน้าเว็บใกล้เคียงความต้องการ ดังรูปตัวอย่างนะครับ สามารถนำไปปรับใช้ โดยการปรับแก้ css และเพิ่มเติมส่วนแสดงผลอื่นๆได้ตามต้องการ

  • วิธีสร้างตาราง HTML Table จาก CSV File

    โจทย์คือ ต้องสร้างระบบ เพื่อให้ผู้ใช้ สร้าง โครงสร้างแบบฟอร์ม ด้วย Excel แล้วต้องแปลงให้เป็น Web Page ซึ่ง จะต้องการตกแต่งด้วย Bootstrap

    หน้าตาต้นแบบเป็นแบบนี้ (ในที่นี้ใช้ Google Sheets แต่ก็ทำวิธีการเดียวกันกับ MS Excel)

    ถ้า ใช้วิธี Save As เป็น HTML ตรง ๆ จะได้หน้าตาประมาณนี้

    ซึ่งจะยุ่งยากมาก ในการจัดการ และการควบคุมการแสดงผล

    วิธีการคือ !!!

    1 Save As เป็น CSV

    2 เปิดเว็บ
    http://www.convertcsv.com/csv-to-html.htm

    3 แล้ว Upload ไฟล์ หรือจะ Copy Paste ก็ได้

    4 ก็จะได้ plain HTML

    5 เอาไปประกอบกับ Bootstrap ได้สบาย (ในภาพ ใช้ django template tag ด้วย เลยได้ widget ตามที่กำหนด)

    หวังว่าจะเป็นประโยชน์ครับ

  • ทบทวนที่เรียนจากติว PhoneGap ด้วย HTML5 & Jquery Mobile

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

    ลองทบทวนจากที่เรียนใน workshop
    ติว “แนะนำและสอนการพัฒนาเบื้องต้นเกี่ยวกับ Application บนมือถือด้วย PhoneGap โดยใช้ HTML5 & Jquery Mobile”

    สภาพแวดล้อม
    – เป็นการติดตั้งทดสอบบน Windows 8 (32 bit) บนเครื่องโน้ตบุ๊ค HP ProBook 6450b RAM 4 GB

    1. download JRE
    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
    32bit ได้ไฟล์สำหรับติดตั้ง jdk-7u25-windows-i586.exe
    (64bit ได้ไฟล์สำหรับติดตั้ง jdk-7u25-windows-x64.exe)
    รันไฟล์ดังกล่าวเพื่อติดตั้งลงในวินโดวส์

    2. download ADT
    http://developer.android.com/sdk/index.html
    32bit ได้ไฟล์ที่ zip ไว้คือ adt-bundle-windows-x86-20130729.zip
    (64bit ได้ไฟล์ที่ zip ไว้คือ adt-bundle-windows-x86_64-20130717.zip)
    แตกไฟล์ดังกล่าวออกมาแล้ว
    32bit ได้ไดเรกทอรี adt-bundle-windows-x86-20130729 ไว้ที่ C:\
    (64bit ได้ไดเรกทอรี adt-bundle-windows-x86_64-20130717 ไว้ที่ C:\)
    สร้าง shortcut ไปยังไฟล์ชื่อ eclipse.exe ในไดเรกทอรี eclipse ไว้บน Desktop
    ทดสอบรันโปรแกรม eclipse
    ตั้งชื่อ workspace ไว้ที่ C:\phonegap
    phonegap-000
    3. สร้าง Andriod Device ในโปรแกรม Java – ADT
    เมนู Windows > Android Virtual Device Manager
    แท็บ Android Virtual Devices คลิก New…
    ADV Name: ตั้งชื่อ ADV-7-inch
    Device: เลือก Nexus 7
    Target: เลือก Android 4.3 – API Level 18
    (adt-bundle-windows-x86-20130729.zip จะได้ Android 4.3 – API Level 18)
    Front Camera: None
    RAM: 768
    ทดสอบเปิด ADV-7-inch คลิก Start แล้วรอ ค่อนข้างนาน
    phonegap-001

    4. สร้าง New Android Application
    File > New > New Android Application
    ตั้งชื่อว่า phonegappsu
    ที่เหลือใช้ค่า default
    phonegap-002
    หน้าต่อไป Create Project in Workspace
    ตั้ง Location เป็นชื่อ C:\phonegap\phonegappsu
    phonegap-003
    หน้าต่อไป ใช้ค่า default
    phonegap-004
    หน้าต่อไป ใช้ค่า Blank Activity
    phonegap-005
    หน้าต่อไป ใช้ค่า default (Activity Name: MainActivity)
    phonegap-006
    คลิก Finish แล้วจะได้หน้าต่างของรายละเอียดเยอะแยะ
    phonegap-007

    5. download phonegap
    http://phonegap.com/install/ เลือก PhoneGap2.9.0
    ได้ไฟล์ที่ zip ไว้คือ phonegap-2.9.0.zip
    แตกไฟล์ดังกล่าวออกมาแล้ว ได้ไดเรกทอรี phonegap-2.9.0

    6. ที่ Windows Explorer เข้าไปในไดเรกทอรี phonegap-2.9.0
    ก็อปปี้เฉพาะไดเรกทอรี lib\android\example\assets\www
    phonegap-008
    ที่รายการด้านซ้ายของโปรแกรม ADT คลิกขวาที่ phonegappsu > assets แล้ววาง www ไว้

    ก็อปปี้เฉพาะไดเรกทอรี lib\andriod\xml
    phonegap-009
    ที่รายการด้านซ้ายของโปรแกรม ADT คลิกขวาที่ phonegappsu > res แล้ววาง xml ไว้

    ก็อปปี้เฉพาะไดเรกทอรี lib\android\cordova­2.9.0.jar
    phonegap-010
    ที่รายการด้านซ้ายของโปรแกรม ADT คลิกขวาที่ phonepagpsu > libs แล้ววาง cordova­2.9.0.jar ไว้
    รวมแล้วจะได้หน้าตาประมาณนี้
    phonegap-011

    7. แก้ไขไฟล์  MainActivity.java ( ข้อนี้ต้องระวังการ copy แล้ว paste เครื่องหมายคำพูด และ ; )
    ที่รายการด้านซ้ายของโปรแกรม ADT ใต้ Project ที่สร้าง
    phonegappsu > src > com.example.phonegappsu> MainActivity.java
    โดยคลิกขวา > ใช้คำสั่ง Open With > Text Editor
    (1)แก้ไขบรรทัดเดิม public class MainActivity extends Activity
    เป็น public class MainActivity extends DroidGap
    (2)แก้ไขชุดบรรทัด import เดิมดังนี้
    ลบบรรทัด import android.app.Activity;
    เพิ่มบรรทัด import org.apache.cordova.*;
    (3)แก้ไขบรรทัดที่มีคำว่า protected เป็น public
    (4)ใส่ comment บรรทัด //setContentView(R.layout.activity_main);
    (5)แล้วเพิ่มบรรทัด super.loadUrl(“file:///android_asset/www/index.html”);
    จะได้ประมาณนี้

    phonegap-012

    code

    package com.example.phonegap;
    
    import android.os.Bundle;
    import org.apache.cordova.*;
    import android.view.Menu;
    
    public class MainActivity extends DroidGap {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.activity_main);
            super.loadUrl("file:///android_asset/www/index.html");
        }
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
        
    }
    
    

    8. ต้องแก้ไข AndroidManifest.xml
    โดยคลิกขวา > ใช้คำสั่ง Open With > Text Editor
    ใส่ Permission Tag ดังนี้

    code

    <uses-permission android:name="android.permission.VIBRATE"/> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.RECEIVE_SMS"/> 
    <uses-permission android:name="android.permission.RECORD_AUDIO"/> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 
    <uses-permission android:name="android.permission.READ_CONTACTS"/> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.CAMERA"/>

    ไว้ก่อนบรรทัดปิด Tag </manifest>

    9.  ติดตั้ง jquery.mobile
    download phonegapcomponent (jquery.mobile)
    เอาจาก facebook group ชื่อ phonegap for psu เลือก files (สามารถโหลดจาก http://jquerymobile.com/ ได้เลย)
    ได้ไฟล์ที่ zip ไว้คือ PhoneGapComponent.zip
    แตกไฟล์ดังกล่าวออกมาแล้ว ได้ไดเรกทอรี PhoneGapComponent
    ที่ Windows Explorer เข้าไปในไดเรกทอรี PhoneGapComponent
    ก็อปปี้เฉพาะไดเรกทอรี css และ js
    ที่รายการด้านซ้ายของโปรแกรม ADT คลิกขวาที่ phonegappsu > assets > www แล้ววาง css กับ js ไว้

    10. ทดสอบสร้าง Application จากตัวอย่าง index.html ที่ให้มา
    จะได้ไฟล์ phonegappsu.apk
    ที่รายการด้านซ้ายของโปรแกรม Eclipse ใต้ Project ที่สร้าง
    assets > www > โดยคลิกขวาที่ไฟล์  index.html > ใช้คำสั่ง Open With > Text Editor
    สั่ง Run
    phonegap-014

    11. ในข้อถัดไปเป็นตัวอย่างใน workshop เอาไฟล์ตัวอย่างจากที่นี่
    https://sharedrive.psu.ac.th/public.php?service=files&t=04facfa02dc0204fadbf00925d3c431c )

    12. ทดสอบด้วยตัวอย่างที่ 1 ชื่อ example1.html
    (ตัวอย่างนี้จะเปิด dialog หลังจากเลือกเมนู และบางเมนูเมื่อเลือกก็จะซ่อนข้อความ)
    นำไฟล์ตัวอย่าง example1.html ไปวางไว้ที่ phonegappsu > www
    phonegap-015
    แก้ไขไฟล์  MainActivity.java
    ที่รายการด้านซ้ายของโปรแกรม Eclipse ใต้ Project ที่สร้าง
    phonegappsu > src > com.example.phonegappsu> MainActivity.java
    แก้ไขบรรทัด super.loadUrl(“file:///android_asset/www/index.html”);
    เป็น super.loadUrl(“file:///android_asset/www/example1.html”);
    รันโปรเจกต์ ได้ผลแสดงบน ADV
    phonegap-016

    13. ทดสอบด้วยตัวอย่างที่ 2 ชื่อ example2.html
    (ตัวอย่างนี้จะมีปุ่ม back ให้ย้อนกลับได้)
    นำไฟล์ตัวอย่าง example2.html ไปวางไว้ที่ phonegappsu > www
    phonegap-017
    แก้ไขไฟล์  MainActivity.java
    ที่รายการด้านซ้ายของโปรแกรม Eclipse ใต้ Project ที่สร้าง
    phonegappsu > src > com.example.phonegappsu> MainActivity.java
    แก้ไขบรรทัด super.loadUrl(“file:///android_asset/www/index.html”);
    เป็น super.loadUrl(“file:///android_asset/www/example2.html”);
    รันโปรเจกต์ ได้ผลแสดงบน ADV
    phonegap-018

    14. ทดสอบด้วยตัวอย่างที่ 3 ชื่อ dbuser.html
    (ตัวอย่างนี้ป้อนชื่อ นามสกุล เพศ เก็บลง sqlite database บน android และแสดงรายการ
    ขอบคุณกิตติพัฒน์ อุบลกาญจน์ที่เป็นเจ้าของต้นฉบับไฟล์ที่แก้ไปเยอะจากที่วิทยากรให้ลองทำ)
    นำไฟล์ตัวอย่าง dbuser.html ไปวางไว้ที่ phonegappsu > www
    phonegap-019
    แก้ไขไฟล์  MainActivity.java
    ที่รายการด้านซ้ายของโปรแกรม Eclipse ใต้ Project ที่สร้าง
    phonegappsu > src > com.example.phonegappsu> MainActivity.java
    แก้ไขบรรทัด super.loadUrl(“file:///android_asset/www/index.html”);
    เป็น super.loadUrl(“file:///android_asset/www/dbuser.html”);
    รันโปรเจกต์ ได้ผลแสดงบน ADV
    phonegap-020

    15. หากต้องการทดสอบบน Android Smartphone เครื่องจริง ก็เอาไฟล์ phonegappsu.apk ไปใส่แล้วติดตั้ง
    ซึ่งไฟล์อยู่ที่ phonegappsu > bin

    ลองทำตามดูนะครับ