Framework7 - รีเฟรช
คำอธิบาย
เป็นส่วนประกอบพิเศษที่ใช้ในการรีเฟรช (โหลดซ้ำ) เนื้อหาของหน้าโดยดึง
โค้ดต่อไปนี้แสดงวิธีการรีเฟรชเนื้อหาเพจ -
<div class = "page">
<!-- Page content should have additional "pull-to-refresh-content" class -->
<div class = "page-content pull-to-refresh-content" data-ptr-distance = "55">
<!-- Default pull to refresh layer-->
<div class = "pull-to-refresh-layer">
<div class = "preloader"></div>
<div class = "pull-to-refresh-arrow"></div>
</div>
<!-- usual content below -->
<div class = "list-block">
...
</div>
</div>
คลาสต่อไปนี้ใช้ในการรีเฟรช -
page-content- มีคลาสเนื้อหาดึงเพื่อรีเฟรชเพิ่มเติมและจำเป็นในการเปิดใช้งานการดึงเพื่อรีเฟรช
pull-to-refresh-layer- เป็นเลเยอร์ที่ซ่อนอยู่ซึ่งใช้ในการดึงเพื่อรีเฟรชองค์ประกอบภาพและเป็นเพียงตัวโหลดล่วงหน้าและลูกศร
data-ptr-distance = "55" - นี่คือแอตทริบิวต์เพิ่มเติมที่ให้คุณตั้งค่าระยะทริกเกอร์ "ดึงเพื่อรีเฟรช" แบบกำหนดเองและค่าเริ่มต้นคือ 44px
ดึงเพื่อรีเฟรชกิจกรรม
ใน 'ดึงเพื่อรีเฟรช' มีเหตุการณ์ JavaScript บางอย่างซึ่งได้รับในตารางต่อไปนี้ -
ส. เลขที่ | เหตุการณ์และคำอธิบาย | เป้าหมาย |
---|---|---|
1 | pullstart จะถูกเรียกเมื่อใดก็ตามที่คุณเริ่มดึงเพื่อรีเฟรชเนื้อหา |
ดึงเพื่อรีเฟรชเนื้อหา
|
2 | pullmove จะถูกทริกเกอร์เมื่อคุณดึงเพื่อรีเฟรชเนื้อหา |
ดึงเพื่อรีเฟรชเนื้อหา
|
3 | pullend จะถูกเรียกเมื่อใดก็ตามที่คุณปล่อยดึงเพื่อรีเฟรชเนื้อหา |
ดึงเพื่อรีเฟรชเนื้อหา
|
4 | refresh เหตุการณ์นี้จะถูกเรียกเมื่อดึงเพื่อรีเฟรชเข้ามาใน"สดชื่น"รัฐ |
ดึงเพื่อรีเฟรชเนื้อหา
|
5 | refreshdone จะถูกทริกเกอร์หลังจากรีเฟรชและกลับสู่สถานะเริ่มต้น สิ่งนี้จะทำได้หลังจากเรียกเมธอดpullToRefreshDone |
ดึงเพื่อรีเฟรชเนื้อหา
|
มีวิธีการของแอพที่สามารถใช้ได้กับ Pull to Refresh
ส. เลขที่ | วิธีการและคำอธิบายของแอป |
---|---|
1 | myApp.pullToRefreshDone(ptrContent) มันถูกใช้เพื่อรีเซ็ตดึงเพื่อรีเฟรชเนื้อหา |
2 | myApp.pullToRefreshTrigger(ptrContent) มันถูกใช้เพื่อทริกเกอร์ที่จะฟื้นฟูในระบุดึงไปที่เนื้อหาการฟื้นฟู |
3 | myApp.destroyPullToRefresh(ptrContent) มันถูกใช้เพื่อทำลาย / ปิดการใช้ดึงเพื่อฟื้นฟูในระบุดึงไปที่เนื้อหาการฟื้นฟู |
4 | myApp.initPullToRefresh(ptrContent) มันถูกใช้เพื่อเริ่มต้น / เปิด ดึงไปที่เนื้อหาการฟื้นฟู |
โดยที่ptrContentใช้กับHTMLElementหรือสตริงเพื่อดึงเพื่อรีเฟรชเนื้อหาเพื่อรีเซ็ต / ทริกเกอร์หรือปิดใช้งาน / เปิดใช้งาน
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้คอมโพเนนต์การรีเฟรชที่เริ่มการรีเฟรชเนื้อหาของหน้า -
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<title>Pull To Refresh</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css">
</head>
<div class="views">
<div class="view view-main">
<div class="pages">
<div data-page="home" class="page navbar-fixed">
<div class="navbar">
<div class="navbar-inner">
<div class="left"> </div>
<div class="center">Pull To Refresh</div>
<div class="right"> </div>
</div>
</div>
<div class="page-content pull-to-refresh-content">
<div class="pull-to-refresh-layer">
<div class="preloader"></div>
<div class="pull-to-refresh-arrow"></div>
</div>
<div class="list-block media-list">
<ul>
<li class="item-content">
<div class="item-media"><img src="/framework7/images/apple.png" width="44"></div>
<div class="item-inner">
<div class="item-title-row">
<div class="item-title">apple</div>
</div>
</div>
</li>
<li class="item-content">
<div class="item-media"><img src="/framework7/images/froots_img.jpg" width="44"></div>
<div class="item-inner">
<div class="item-title-row">
<div class="item-title">strawberry</div>
</div>
</div>
</li>
<li class="item-content">
<div class="item-media"><img src="/framework7/images/mango.jpg" width="44"></div>
<div class="item-inner">
<div class="item-title-row">
<div class="item-title">Mango</div>
</div>
</div>
</li>
</ul>
<div class="list-block-label">
<p>Just pull page down to let the magic happen.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script>
<script>
var myApp = new Framework7();
var $$ = Dom7;
// Dummy Content
var fruits = ['mango', 'orange', 'watermelon', 'banana'];
// Pull to refresh content
var ptrContent = $$('.pull-to-refresh-content');
// Add 'refresh' listener on it
ptrContent.on('refresh', function (e) {
// Emulate 2s loading
setTimeout(function () {
var picURL = 'images/Fruit.jpg' + Math.round(Math.random() * 100);
var fruit = fruits[Math.floor(Math.random() * fruits.length)];
var itemHTML = '<li class="item-content">' +
'<div class="item-media"><img src="/framework7/images/Fruit.jpg" width="44"/></div>' +
'<div class="item-inner">' +
'<div class="item-title-row">' +
'<div class="item-title">' + fruit + '</div>' +
'</div>' + '</div>' + '</li>';
// Prepend new list element
ptrContent.find('ul').prepend(itemHTML);
// When loading done, we need to reset it
myApp.pullToRefreshDone();
}, 2000);
});
</script>
</html>
เอาต์พุต
ให้เราทำตามขั้นตอนต่อไปนี้เพื่อดูว่าโค้ดข้างต้นทำงานอย่างไร -
บันทึกโค้ด HTML ที่ระบุข้างต้นเป็น pull_to_refresh.html ไฟล์ในโฟลเดอร์รูทเซิร์ฟเวอร์ของคุณ
เปิดไฟล์ HTML นี้เป็น http: //localhost/pull_to_refresh.html และผลลัพธ์จะแสดงดังที่แสดงด้านล่าง
เมื่อผู้ใช้ดึงลงมาหน้าจะถูกรีเฟรชพร้อมเนื้อหา