tui-sticky.wxs
1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var stickyChange = function(scrollTop, oldScrollTop, ownerInstance, ins) {
if (!oldScrollTop) return false;
var dataset = ins.getDataset()
var top = +dataset.top;
var height = +dataset.height;
var stickyTop = +dataset.stickytop;
var isNativeHeader = dataset.isnativeheader;
var isFixed = false;
var distance = stickyTop
// #ifdef H5
if (isNativeHeader) {
distance = distance - 44
distance = distance < 0 ? 0 : distance
}
// #endif
if (dataset.container) {
isFixed = (scrollTop + distance >= top && scrollTop + distance < top + height) ? true : false
} else {
isFixed = scrollTop + distance >= top ? true : false
}
var tsb = ownerInstance.selectComponent('.tui-sticky-bar')
var tss = ownerInstance.selectComponent('.tui-sticky-seat')
if (!tsb || !tss) return;
if (isFixed) {
tsb.setStyle({
"top": stickyTop + 'px'
}).addClass('tui-sticky-fixed')
tss.setStyle({
"display": 'block'
})
} else {
tsb.setStyle({
"top": 'auto'
}).removeClass('tui-sticky-fixed')
tss.setStyle({
"display": 'none'
})
}
ownerInstance.triggerEvent("sticky", {
isFixed: isFixed,
index: parseInt(dataset.index)
})
}
module.exports = {
stickyChange: stickyChange
}