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