2018_11_02_03

plugin

插件注册

import PickerComponent from './picker.vue';
let $vm;
export default {
install(Vue, options) {
if (!$vm) {
const pickerPlugin = Vue.extend(PickerComponent);
$vm = new pickerPlugin({
el: document.createElement('div'),
});
document.body.appendChild($vm.$el);
}
$vm.showValue = false;
let picker = {
show(options) {
console.log(15);
$vm.showValue = true;
},
hide() {
document.body.removeChild($vm.$el);
},
};
if (!Vue.$picker) {
Vue.$picker = picker;
}
Vue.mixin({
created() {
this.$picker = Vue.$picker;
},
});
},
};

picker

<template>
<div class="my-picker around">
<transition name="picker-bg">
<div v-show="showValue" class="my-picker-bg around" @click="showValue = !showValue"></div>
</transition>
<transition name="picker-animated" enter-active-class="animated fadeInUp" leave-active-class="animated fadeOutDown">
<div v-show="showValue" class="my-picker-container">
<div class="top_in">
</div>
</div>
</transition>
</div>
</template>
<script>
export default {
name: "my-picker",
props: {
showValue: Boolean,
},
};
</script>
<style lang="less" scoped>
@import url("../../assets/common.less");
@import url("../../../node_modules/animate.css/animate.min.css");
.my-picker {
.my-picker-bg {
position: absolute;
background-color: rgba(0, 0, 0, 0.5);
}
.my-picker-container {
position: absolute;
bottom: 0;
width: 100%;
height: 45vh;
background-color: #fff;
}
}
// 设置动画执行时间
.my-picker-container {
animation-duration: 250ms;
animation-timing-function: linear;
}
.my-picker-bg {
animation-duration: 260ms;
animation-timing-function: linear;
}
</style>
posted @   塘下七武海-涛  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示