提交
This commit is contained in:
45
甲情_甲意/miniprogram/node_modules/antd-mini/less/Calendar/scroll.sjs
generated
vendored
Normal file
45
甲情_甲意/miniprogram/node_modules/antd-mini/less/Calendar/scroll.sjs
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
function handleScroll(event, ownerComponent) {
|
||||
var currentScroll = event.detail.scrollTop;
|
||||
var dataset = event.instance.getDataset();
|
||||
var elementSize = dataset.elementsize,
|
||||
monthList = dataset.monthlist;
|
||||
if (!elementSize) {
|
||||
return;
|
||||
}
|
||||
// 组件如果内嵌在 slot 里, 一定会被渲染出来, 但是此时 cellHight 为 0
|
||||
if (elementSize.cellHight === 0) {
|
||||
ownerComponent.callMethod('measurement');
|
||||
return;
|
||||
}
|
||||
var instance = ownerComponent.selectComponent('.ant-calendar-sticky-title');
|
||||
var sticky = ownerComponent.selectComponent('.ant-calendar-sticky');
|
||||
if (sticky) {
|
||||
sticky.setStyle({
|
||||
display: currentScroll < 0 ? 'none' : 'block'
|
||||
});
|
||||
}
|
||||
var monthHeight = elementSize.monthTitleHeight;
|
||||
var paddingHeight = elementSize.paddingHeight;
|
||||
var cellHeight = elementSize.cellHight;
|
||||
var heightList = monthList.map(function (p) {
|
||||
return monthHeight + cellHeight * p.cells.length / 7;
|
||||
});
|
||||
for (var i = 0; i < heightList.length; i++) {
|
||||
if (currentScroll < heightList[i]) {
|
||||
var topHeight = currentScroll - heightList[i] + monthHeight - paddingHeight;
|
||||
topHeight = Math.max(topHeight, 0);
|
||||
instance.setStyle({
|
||||
transform: "translateY(-".concat(topHeight, "px)")
|
||||
});
|
||||
ownerComponent.callMethod('setCurrentMonth', {
|
||||
month: topHeight > monthHeight * 0.8 ? i + 1 : i
|
||||
});
|
||||
break;
|
||||
} else {
|
||||
currentScroll = currentScroll - heightList[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
export default {
|
||||
handleScroll: handleScroll
|
||||
};
|
Reference in New Issue
Block a user