การใช้งาน slide box ใน ionicframework อย่างง่าย ตอนที่ 8

เขียนเมื่อ 9 ปีก่อน โดย Ninenik Narkdee
slide box ionic

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ slide box ionic

ดูแล้ว 6,558 ครั้ง


slide box ใน ionicframework เป็นยังไง สามารถดูได้ที่
http://ionicframework.com/docs/api/directive/ionSlideBox/
 
รูปแบบจะเป็นไปในลักษณะ การเลื่อน slide ไปทางซ้ายหรือขวา
เพื่อดูเนื้อหาหรือข้อมูล สามารถไปประยุกต์ได้หลายแบบ
เช่น การ slide ดูรูปภาพ การ slde ดูเนื้อหา เป็นต้น
 
ตัวอย่าง
 
 
โค้ดไฟล์ app.js (ที่จริงตัวทดสอบไฟล์นี้ไม่มีอะไร แต่ก็ขอเอาโค้ดมาแปะไว้กันงง)
 
angular.module("MyApp", ["ionic"])
.controller("myIonicHome",function($scope){ 

});
 
โค้ดไฟล์ index.html
 
<!DOCTYPE html>
<html ng-app="MyApp"> 
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="msapplication-tap-highlight" content="no" />
        <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
        <link href="css/ionic.css" rel="stylesheet">
        <script type="text/javascript" src="js/ionic.bundle.js"></script>  
        <script type="text/javascript" src="app.js"></script>
        <title>My Slide Box</title>
        <style type="text/css">
            .orange{background: orange;height: 300px;}
            .yellow{background: yellow;height: 300px;}
            .pink{background: pink;height: 300px;}
        </style>
    </head>
    <body ng-controller="myIonicHome">


        <ion-header-bar class="bar bar-header bar-calm">
            <h1 class="title">Slide Box!</h1>
        </ion-header-bar>
        <ion-content class="scroll-content ionic-scroll has-header">

        <ion-slide-box 
         does-continue="true" 
         on-slide-changed="slideHasChanged($index)">
          <ion-slide>
            <div class="box orange"><h1>ORANGE</h1></div>
          </ion-slide>
          <ion-slide>
            <div class="box yellow"><h1>YELLOW</h1></div>
          </ion-slide>
          <ion-slide>
            <div class="box pink"><h1>PINK</h1></div>
          </ion-slide>
        </ion-slide-box>


       
        </ion-content>
   
    </body>
</html>
 
ด้านบน จะเป็นรูปแบบการจัดวางโค้ด และการใช้งาน ion-slide-box กับ ion-slide
เราสามารถมีได้หลายๆ slide box ในหน้าเดียวกันได้  
จากตัวอย่างด้านบน เป็นการวาง slide box ในส่วนของ content
 
ทีนี้เรามาดูว่า จะจัดการอะไรกับ slide box ได้บ้าง
 
1. เราสามารถกำหนดชื่อเรียกแทน สำหรับใช้ในการจัดการกับ slide box นั้นด้วย
 delegate-handle ตัวอย่างเช่น
 
        <ion-slide-box 
         delegate-handle="myslidebox" 
        >
          <ion-slide>
            <div class="box orange"><h1>ORANGE</h1></div>
          </ion-slide>
          <ion-slide>
            <div class="box yellow"><h1>YELLOW</h1></div>
          </ion-slide>
          <ion-slide>
            <div class="box pink"><h1>PINK</h1></div>
          </ion-slide>
        </ion-slide-box>
 
โดยค่าที่กำหนดในที่นี้คือ myslidebox ก็จะเป็นชื่อเรียกสำหรับใช้จัดการ slide box 
นั้นๆ ด้วย $ionicSlideBoxDelegate 
ตัวอย่างโค้ด ให้เลื่อน slide ไป slide ลำดับที่สาม ในอีก 5 วินาทีข้างหน้า
 
angular.module("MyApp", ["ionic"])
.controller("myIonicHome",function($scope,$ionicSlideBoxDelegate,$timeout){ 
    
    $timeout(function(){
        $ionicSlideBoxDelegate.$getByHandle('myslidebox').slide(2);
    },5000);
    
});
 
 
2. กำหนดให้เล่น slide แบบต่อเนื่อง ด้วย does-continue เช่น พอไปถึง slide ตัวสุดท้าย ก็ให้วนกลับมา แสดง slide แรก วนไปเรื่อยๆ รูปแบบการกำหนด
 
        <ion-slide-box 
         does-continue="true"
         >
        </ion-slide-box>
 
3. กำหนดให้ slide เล่นอัตโนมัติ ด้วย auto-play ในทุกๆ 4 วินาที (ค่าเริ่มต้น)
 
        <ion-slide-box 
         does-continue="true"
         auto-play="true"
         >
        </ion-slide-box>
 
4. หากต้องการกำหนดเวลาในการเล่นอัตโนมัติด้วยตัวเอง ทำได้โดยใช้  slide-interval
 
        <ion-slide-box 
         does-continue="true"
         auto-play="true"
         slide-interval="3000"
         >
        </ion-slide-box>
 
5. แสดง pager ด้วย show-pager (ปกติหากไม่กำหนด pager จะแสดง) ไม่แสดงใช้ false
 
        <ion-slide-box 
         does-continue="true"
         auto-play="true"
         slide-interval="3000"
         show-pager="false"
         >
        </ion-slide-box>
 
6. สามารถกำหนดให้ เรียกใช้งาน expression ด้วย pager-click เมื่อคลิกที่ pageer โดย จะมีการส่ง ค่าตัวแปร 'index' ของ slide เข้าไปใช้งานด้วย
 
        <ion-slide-box 
         does-continue="true"
         show-pager="true" 
         pager-click="goSlide(index)"
         >
        </ion-slide-box>
 
ไฟล์ app.js
 
angular.module("MyApp", ["ionic"])
.controller("myIonicHome",function($scope,$ionicSlideBoxDelegate){ 

    $scope.goSlide = function(index){
       $ionicSlideBoxDelegate.slide(index); 
    };
    
});
 
7. สามารถกำหนดให้เรียกใช้งาน expression ด้วย  on-slide-changed เมื่อมีการเปลี่ยน slide โดยจะมีการส่งค่าตัวแปร '$index'  (มี $ ด้วย ต่างจากข้อ 6 แต่คือค่าเดียวกัน) 
 
        <ion-slide-box 
         does-continue="true"
         on-slide-changed="slideHasChanged($index)" 
         >
        </ion-slide-box>
 
ไฟล์ app.js
 
angular.module("MyApp", ["ionic"])
.controller("myIonicHome",function($scope,$ionicSlideBoxDelegate){ 

    $scope.slideHasChanged = function(index){
        // do something
    };
    
});
 
8. สามารถกำหนดว่า slide ไหนจะเป็น slide เริ่มต้นได้ หรือ slide ที่ต้องการใช้าน ด้วย active-slide 
 
        <ion-slide-box 
         does-continue="true"
         active-slide="1"
         >
        </ion-slide-box>
 
การใช้งาน slide ยังมีลูกเล่นต่างๆ ขึ้นกับรูปแบบการนำเสนอ
ข้างต้นเป็นเพียงให้เข้าใจคร่าวๆ เกี่ยวกับการใช้งาน slide box


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ







เนื้อหาที่เกี่ยวข้อง



Tags:: slide box ionic







URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ