| ¶Ô±ÈÐÂÎļþ |
| | |
| | | function scroll(event, ownerInstance) { |
| | | // detailä¸å«æscroll-viewçä¿¡æ¯ï¼æ¯å¦scroll-viewçå®é
宽度ï¼å½åæ¶é´ç¹scroll-viewçç§»å¨è·ç¦»ç |
| | | var detail = event.detail |
| | | var scrollWidth = detail.scrollWidth |
| | | var scrollLeft = detail.scrollLeft |
| | | // è·åå½åç»ä»¶çdatasetï¼è¯´ç½äºå°±æ¯ç¥¸å½æ®æ°çè
¾xunæåºæ¥çåji |
| | | var dataset = event.currentTarget.dataset |
| | | // æ¤ä¸ºscroll-viewå¤é¨å
裹å
ç´ ç宽度 |
| | | // æäºHXçæ¬(3.1.18)ï¼åç°viewå
ç´ ä¸å¤§åçdata-scrollWidthï¼å¨wxsä¸ï¼åæäºå
¨é¨å°åï¼æä»¥è¿ééè¦ç¹å«å¤ç |
| | | var scrollComponentWidth = dataset.scrollWidth || dataset.scrollwidth || 0 |
| | | // æç¤ºå¨åæ»åç宽度 |
| | | var indicatorWidth = dataset.indicatorWidth || dataset.indicatorwidth || 0 |
| | | var barWidth = dataset.barWidth || dataset.barwidth || 0 |
| | | // æ¤å¤ç计ç®çç±ä¸ºï¼scroll-viewçæ»å¨è·ç¦»ä¸ç®æ æ»å¨è·ç¦»(scroll-viewçå®é
宽度åå»å
裹å
ç´ ç宽度)乿¯ï¼çäºæ»åå½åç§»å¨è·ç¦»ä¸æ»é |
| | | // æ»å¨è·ç¦»(æç¤ºå¨çæ»å®½åº¦å廿»å宽度)çæ¯å¼ |
| | | var x = scrollLeft / (scrollWidth - scrollComponentWidth) * (indicatorWidth - barWidth) |
| | | setBarStyle(ownerInstance, x) |
| | | } |
| | | |
| | | // ç±äºwebviewçæ è½ï¼æ æ³ä¿è¯scroll-view卿»å¨è¿ç¨ä¸ï¼ä¸ç´è§¦åscrolläºä»¶ï¼ä¼å¯¼è´ |
| | | // æ æ³çå¬å°æäºæ»å¨å¼ï¼å½å¨é¦å°¾ä¸´ç弿 æ³çå¬å°æ¶ï¼è¿æ¯è´å½çï¼å 为é失è¿äºå¼ä¼å¯¼è´æ»åæ æ³åå°èµ·ç¹åç»ç¹ |
| | | // æä»¥è¿ééè¦å¯¹ä¸´çå¼åçå¬å¹¶å¤ç |
| | | function scrolltolower(event, ownerInstance) { |
| | | ownerInstance.callMethod('scrollEvent', 'right') |
| | | // è·åå½åç»ä»¶çdataset |
| | | var dataset = event.currentTarget.dataset |
| | | // æç¤ºå¨åæ»åç宽度 |
| | | var indicatorWidth = dataset.indicatorWidth || dataset.indicatorwidth || 0 |
| | | var barWidth = dataset.barWidth || dataset.barwidth || 0 |
| | | // scroll-viewæ»å¨å°å³è¾¹ç»ç¹æ¶ï¼å°æ»åä¹è®¾ç½®ä¸ºå°å³è¾¹çç»ç¹ï¼å®æéç§»å¨çè·ç¦»ä¸ºï¼æç¤ºå¨å®½åº¦ - æ»å宽度 |
| | | setBarStyle(ownerInstance, indicatorWidth - barWidth) |
| | | } |
| | | |
| | | function scrolltoupper(event, ownerInstance) { |
| | | ownerInstance.callMethod('scrollEvent', 'left') |
| | | // æ»å¨å°å·¦è¾¹æ¶ï¼å°æ»å设置为0çåç§»è·ç¦»ï¼åå°èµ·ç¹ |
| | | setBarStyle(ownerInstance, 0) |
| | | } |
| | | |
| | | function setBarStyle(ownerInstance, x) { |
| | | ownerInstance.selectComponent('.u-scroll-list__indicator__line__bar') && ownerInstance.selectComponent('.u-scroll-list__indicator__line__bar').setStyle({ |
| | | transform: 'translateX(' + x + 'px)' |
| | | }) |
| | | } |
| | | |
| | | module.exports = { |
| | | scroll: scroll, |
| | | scrolltolower: scrolltolower, |
| | | scrolltoupper: scrolltoupper |
| | | } |