first
This commit is contained in:
93
node_modules/vant/lib/index-anchor/index.js
generated
vendored
Normal file
93
node_modules/vant/lib/index-anchor/index.js
generated
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _utils = require("../utils");
|
||||
|
||||
var _relation = require("../mixins/relation");
|
||||
|
||||
var _constant = require("../utils/constant");
|
||||
|
||||
var _scroll = require("../utils/dom/scroll");
|
||||
|
||||
var _createNamespace = (0, _utils.createNamespace)('index-anchor'),
|
||||
createComponent = _createNamespace[0],
|
||||
bem = _createNamespace[1];
|
||||
|
||||
var _default = createComponent({
|
||||
mixins: [(0, _relation.ChildrenMixin)('vanIndexBar', {
|
||||
indexKey: 'childrenIndex'
|
||||
})],
|
||||
props: {
|
||||
index: [Number, String]
|
||||
},
|
||||
data: function data() {
|
||||
return {
|
||||
top: 0,
|
||||
left: null,
|
||||
rect: {
|
||||
top: 0,
|
||||
height: 0
|
||||
},
|
||||
width: null,
|
||||
active: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
sticky: function sticky() {
|
||||
return this.active && this.parent.sticky;
|
||||
},
|
||||
anchorStyle: function anchorStyle() {
|
||||
if (this.sticky) {
|
||||
return {
|
||||
zIndex: "" + this.parent.zIndex,
|
||||
left: this.left ? this.left + "px" : null,
|
||||
width: this.width ? this.width + "px" : null,
|
||||
transform: "translate3d(0, " + this.top + "px, 0)",
|
||||
color: this.parent.highlightColor
|
||||
};
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted: function mounted() {
|
||||
var rect = this.$el.getBoundingClientRect();
|
||||
this.rect.height = rect.height;
|
||||
},
|
||||
methods: {
|
||||
scrollIntoView: function scrollIntoView() {
|
||||
this.$el.scrollIntoView();
|
||||
},
|
||||
getRect: function getRect(scroller, scrollerRect) {
|
||||
var el = this.$el;
|
||||
var elRect = el.getBoundingClientRect();
|
||||
this.rect.height = elRect.height;
|
||||
|
||||
if (scroller === window || scroller === document.body) {
|
||||
this.rect.top = elRect.top + (0, _scroll.getRootScrollTop)();
|
||||
} else {
|
||||
this.rect.top = elRect.top + (0, _scroll.getScrollTop)(scroller) - scrollerRect.top;
|
||||
}
|
||||
|
||||
return this.rect;
|
||||
}
|
||||
},
|
||||
render: function render() {
|
||||
var _ref;
|
||||
|
||||
var h = arguments[0];
|
||||
var sticky = this.sticky;
|
||||
return h("div", {
|
||||
"style": {
|
||||
height: sticky ? this.rect.height + "px" : null
|
||||
}
|
||||
}, [h("div", {
|
||||
"style": this.anchorStyle,
|
||||
"class": [bem({
|
||||
sticky: sticky
|
||||
}), (_ref = {}, _ref[_constant.BORDER_BOTTOM] = sticky, _ref)]
|
||||
}, [this.slots('default') || this.index])]);
|
||||
}
|
||||
});
|
||||
|
||||
exports.default = _default;
|
Reference in New Issue
Block a user