MCPcopy
hub / github.com/Tencent/weui.js / stop

Function stop

src/picker/scroll.js:130–160  ·  view source on GitHub ↗
(diff)

Source from the content-addressed store, hash-verified

128 setTranslate($scrollable, translate);
129
130 function stop(diff) {
131 translate += diff;
132
133 // 移动到最接近的那一行
134 translate = Math.round(translate / defaults.rowHeight) * defaults.rowHeight;
135 const max = getMax(defaults.offset, defaults.rowHeight);
136 const min = getMin(defaults.offset, defaults.rowHeight, defaults.items.length);
137 // 不要超过最大值或者最小值
138 if (translate > max) {
139 translate = max;
140 }
141 if (translate < min) {
142 translate = min;
143 }
144
145 // 如果是 disabled 的就跳过
146 let index = defaults.offset - translate / defaults.rowHeight;
147 while (!!defaults.items[index] && defaults.items[index].disabled) {
148 diff > 0 ? ++index : --index;
149 }
150 translate = (defaults.offset - index) * defaults.rowHeight;
151 setTransition($scrollable, .3);
152 setTranslate($scrollable, translate);
153
154 // 触发选择事件
155 if (index !== lastIndex) {
156 defaults.onScroll.call(this, defaults.items[index], index);
157 defaults.onChange.call(this, defaults.items[index], index);
158 }
159 lastIndex = null; // 重置
160 }
161
162 function _start(pageY){
163 start = pageY;

Callers 1

_endFunction · 0.85

Calls 4

getMaxFunction · 0.85
getMinFunction · 0.85
setTransitionFunction · 0.85
setTranslateFunction · 0.85

Tested by

no test coverage detected