¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <u-transition |
| | | :show="show" |
| | | custom-class="u-overlay" |
| | | :duration="duration" |
| | | :custom-style="overlayStyle" |
| | | @click="clickHandler" |
| | | > |
| | | <slot /> |
| | | </u-transition> |
| | | </template> |
| | | |
| | | <script> |
| | | import props from './props.js'; |
| | | |
| | | /** |
| | | * overlay é®ç½© |
| | | * @description å建ä¸ä¸ªé®ç½©å±ï¼ç¨äºå¼ºè°ç¹å®ç页é¢å
ç´ ï¼å¹¶é»æ¢ç¨æ·å¯¹é®ç½©ä¸å±çå
容è¿è¡æä½ï¼ä¸è¬ç¨äºå¼¹çªåºæ¯ |
| | | * @tutorial https://www.uviewui.com/components/overlay.html |
| | | * @property {Boolean} show æ¯å¦æ¾ç¤ºé®ç½©ï¼é»è®¤ false ï¼ |
| | | * @property {String | Number} zIndex zIndex å±çº§ï¼é»è®¤ 10070 ï¼ |
| | | * @property {String | Number} duration å¨ç»æ¶é¿ï¼å使¯«ç§ï¼é»è®¤ 300 ï¼ |
| | | * @property {String | Number} opacity ä¸éæåº¦å¼ï¼å½årgbaç第åä¸ªåæ° ï¼é»è®¤ 0.5 ï¼ |
| | | * @property {Object} customStyle å®ä¹éè¦ç¨å°çå¤é¨æ ·å¼ |
| | | * @event {Function} click ç¹å»é®ç½©åéäºä»¶ |
| | | * @example <u-overlay :show="show" @click="show = false"></u-overlay> |
| | | */ |
| | | export default { |
| | | name: "u-overlay", |
| | | mixins: [uni.$u.mpMixin, uni.$u.mixin,props], |
| | | computed: { |
| | | overlayStyle() { |
| | | const style = { |
| | | position: 'fixed', |
| | | top: 0, |
| | | left: 0, |
| | | right: 0, |
| | | zIndex: this.zIndex, |
| | | bottom: 0, |
| | | 'background-color': `rgba(0, 0, 0, ${this.opacity})` |
| | | } |
| | | return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)) |
| | | } |
| | | }, |
| | | methods: { |
| | | clickHandler() { |
| | | this.$emit('click') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "../../libs/css/components.scss"; |
| | | $u-overlay-top:0 !default; |
| | | $u-overlay-left:0 !default; |
| | | $u-overlay-width:100% !default; |
| | | $u-overlay-height:100% !default; |
| | | $u-overlay-background-color:rgba(0, 0, 0, .7) !default; |
| | | .u-overlay { |
| | | position: fixed; |
| | | top:$u-overlay-top; |
| | | left:$u-overlay-left; |
| | | width: $u-overlay-width; |
| | | height:$u-overlay-height; |
| | | background-color:$u-overlay-background-color; |
| | | } |
| | | </style> |