国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

IScroll那些事_當內容不足時下拉刷新的解決方法

2024-05-06 15:14:20
字體:
來源:轉載
供稿:網友

之前項目中的列表是采用的IScroll,但是在使用IScroll有一個問題就是:當內容不足全屏的時候,是木有辦法往下拉的,這樣就達不到刷新的目的了?!具@是本人工作中遇到的,具體例子具體分析,這里只作一個參考】

大致的例子是這樣的:

<style> * { margin: 0; padding: 0; } html,body,.container { width: 100%; height: 100%; } .container>ul>li { padding: 15px 20px; text-align: center; border-bottom: 1px solid #ccc; }</style><div id="container" class="container"> <ul class="scroller"> <li>item1</li> <li>item2</li> <li>item3</li> <li>item4</li> <li>item5</li> </ul></div><script src="https://cdn.bootcss.com/iScroll/5.2.0/iscroll.min.js"></script><script> var myScroll = null; function onLoad() { myScroll = new IScroll('container'); } window.addEventListener('DOMContentLoaded', onLoad, false);</script>

那么,既然超過一屏是可以刷新的,那我們就來逛逛代碼吧。在github上搜索iscroll,打開第一個,找到src下面的core.js。

1. 思路

首先既然要下拉,肯定會觸發touchstart、touchmove以及touchend事件。搜索touchmove,很好,在_initEvents中的注冊了這個事件。

_initEvents: function (remove) { // ... // 這里省略若干代碼 if ( utils.hasTouch && !this.options.disableTouch ) {  eventType(this.wrapper, 'touchstart', this);  eventType(target, 'touchmove', this);  eventType(target, 'touchcancel', this);  eventType(target, 'touchend', this); } // ...},

好吧,看到這里的時候,我表示懵了一下逼,這不就是個綁定事件么?this又是一個什么鬼,然后我去查了一下文檔,發現了這么一個東西。文檔地址

target.addEventListener(type, listener[, options]);target.addEventListener(type, listener[, useCapture]);target.addEventListener(type, listener[, useCapture, wantsUntrusted ]); // // Gecko/Mozilla onlylistener當所監聽的事件類型觸發時,會接收到一個事件通知(實現了 Event 接口的對象)對象。listener 必須是一個實現了 EventListener 接口的對象,或者是一個函數

木有看錯,listener是一個對象或者是一個函數。前提是這個對象實現了EventListener接口。我們接著往下看,發現了這么一個例子。

var Something = function(element) { // |this| is a newly created object this.name = 'Something Good'; this.handleEvent = function(event) { console.log(this.name);  // 'Something Good', as this is bound to newly created object switch(event.type) {  case 'click':  // some code here...  break;  case 'dblclick':  // some code here...  break; } }; // Note that the listeners in this case are |this|, not this.handleEvent element.addEventListener('click', this, false); element.addEventListener('dblclick', this, false); // You can properly remove the listeners element.removeEventListener('click', this, false); element.removeEventListener('dblclick', this, false);}var s = new Something(document.body);            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 囊谦县| 南京市| 开鲁县| 阿克陶县| 田林县| 夏邑县| 江城| 济宁市| 泸州市| 综艺| 土默特左旗| 永登县| 黑水县| 革吉县| 田东县| 馆陶县| 东台市| 新和县| 泰安市| 且末县| 宜兴市| 嫩江县| 德保县| 揭西县| 凤山市| 玉龙| 泰宁县| 岱山县| 上犹县| 庆云县| 开封市| 绩溪县| 延寿县| 格尔木市| 合江县| 西青区| 额济纳旗| 夏河县| 耒阳市| 洪雅县| 茌平县|