| | |
| | | var pullDown = { |
| | | threshold: 95, |
| | | maxHeight: 200, |
| | | callRefresh: 'onrefresh', |
| | | callPullingDown: 'onpullingdown', |
| | | refreshSelector: '.uni-refresh' |
| | | }; |
| | | |
| | | function ready(newValue, oldValue, ownerInstance, instance) { |
| | | var state = instance.getState() |
| | | state.canPullDown = newValue; |
| | | // console.log(newValue); |
| | | } |
| | | |
| | | function touchStart(e, instance) { |
| | | var state = instance.getState(); |
| | | state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); |
| | | state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); |
| | | if (!state.canPullDown) { |
| | | return |
| | | } |
| | | |
| | | // console.log("touchStart"); |
| | | |
| | | state.height = 0; |
| | | state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; |
| | | state.refreshInstance.setStyle({ |
| | | 'height': 0 |
| | | }); |
| | | state.refreshInstance.callMethod("onchange", true); |
| | | } |
| | | |
| | | function touchMove(e, ownerInstance) { |
| | | var instance = e.instance; |
| | | var state = instance.getState(); |
| | | if (!state.canPullDown) { |
| | | return |
| | | } |
| | | |
| | | var oldHeight = state.height; |
| | | var endY = e.touches[0].pageY || e.changedTouches[0].pageY; |
| | | var height = endY - state.touchStartY; |
| | | if (height > pullDown.maxHeight) { |
| | | return; |
| | | } |
| | | |
| | | var refreshInstance = state.refreshInstance; |
| | | refreshInstance.setStyle({ |
| | | 'height': height + 'px' |
| | | }); |
| | | |
| | | height = height < pullDown.maxHeight ? height : pullDown.maxHeight; |
| | | state.height = height; |
| | | refreshInstance.callMethod(pullDown.callPullingDown, { |
| | | height: height |
| | | }); |
| | | } |
| | | |
| | | function touchEnd(e, ownerInstance) { |
| | | var state = e.instance.getState(); |
| | | if (!state.canPullDown) { |
| | | return |
| | | } |
| | | |
| | | state.refreshInstance.callMethod("onchange", false); |
| | | |
| | | var refreshInstance = state.refreshInstance; |
| | | if (state.height > pullDown.threshold) { |
| | | refreshInstance.callMethod(pullDown.callRefresh); |
| | | return; |
| | | } |
| | | |
| | | refreshInstance.setStyle({ |
| | | 'height': 0 |
| | | }); |
| | | } |
| | | |
| | | function propObserver(newValue, oldValue, instance) { |
| | | pullDown = newValue; |
| | | } |
| | | |
| | | module.exports = { |
| | | touchmove: touchMove, |
| | | touchstart: touchStart, |
| | | touchend: touchEnd, |
| | | propObserver: propObserver |
| | | } |
| | | var pullDown = {
|
| | | threshold: 95,
|
| | | maxHeight: 200,
|
| | | callRefresh: 'onrefresh',
|
| | | callPullingDown: 'onpullingdown',
|
| | | refreshSelector: '.uni-refresh'
|
| | | };
|
| | |
|
| | | function ready(newValue, oldValue, ownerInstance, instance) {
|
| | | var state = instance.getState()
|
| | | state.canPullDown = newValue;
|
| | | // console.log(newValue);
|
| | | }
|
| | |
|
| | | function touchStart(e, instance) {
|
| | | var state = instance.getState();
|
| | | state.refreshInstance = instance.selectComponent(pullDown.refreshSelector);
|
| | | state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined);
|
| | | if (!state.canPullDown) {
|
| | | return
|
| | | }
|
| | |
|
| | | // console.log("touchStart");
|
| | |
|
| | | state.height = 0;
|
| | | state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY;
|
| | | state.refreshInstance.setStyle({
|
| | | 'height': 0
|
| | | });
|
| | | state.refreshInstance.callMethod("onchange", true);
|
| | | }
|
| | |
|
| | | function touchMove(e, ownerInstance) {
|
| | | var instance = e.instance;
|
| | | var state = instance.getState();
|
| | | if (!state.canPullDown) {
|
| | | return
|
| | | }
|
| | |
|
| | | var oldHeight = state.height;
|
| | | var endY = e.touches[0].pageY || e.changedTouches[0].pageY;
|
| | | var height = endY - state.touchStartY;
|
| | | if (height > pullDown.maxHeight) {
|
| | | return;
|
| | | }
|
| | |
|
| | | var refreshInstance = state.refreshInstance;
|
| | | refreshInstance.setStyle({
|
| | | 'height': height + 'px'
|
| | | });
|
| | |
|
| | | height = height < pullDown.maxHeight ? height : pullDown.maxHeight;
|
| | | state.height = height;
|
| | | refreshInstance.callMethod(pullDown.callPullingDown, {
|
| | | height: height
|
| | | });
|
| | | }
|
| | |
|
| | | function touchEnd(e, ownerInstance) {
|
| | | var state = e.instance.getState();
|
| | | if (!state.canPullDown) {
|
| | | return
|
| | | }
|
| | |
|
| | | state.refreshInstance.callMethod("onchange", false);
|
| | |
|
| | | var refreshInstance = state.refreshInstance;
|
| | | if (state.height > pullDown.threshold) {
|
| | | refreshInstance.callMethod(pullDown.callRefresh);
|
| | | return;
|
| | | }
|
| | |
|
| | | refreshInstance.setStyle({
|
| | | 'height': 0
|
| | | });
|
| | | }
|
| | |
|
| | | function propObserver(newValue, oldValue, instance) {
|
| | | pullDown = newValue;
|
| | | }
|
| | |
|
| | | module.exports = {
|
| | | touchmove: touchMove,
|
| | | touchstart: touchStart,
|
| | | touchend: touchEnd,
|
| | | propObserver: propObserver
|
| | | }
|