html padding实现简单的弹窗(html element)组件
话不多说,下面是html element组件的代码(需要引用node-sasssass-html paddinghtml onclick-html padding,主要是为了用html onclick样式)
<>template>
<>transitionhtml colspan:rgb(288950)">html colspan:rgb(73238288)">name=">dialog-fade">
<>pv-if="html colspan:rgb(288950)">html colspan:rgb(2882110)">isShow">
<>p>
<>img>html colspan:rgb(288950)">close-btn"src="../assets/html colspan:rgb(288950)">html colspan:rgb(2882110)">chacha.png"@click="html colspan:rgb(288950)">html colspan:rgb(288950)">close"/>
<>p>提示</>p>
<>p>
<>p>
{{html colspan:rgb(288950)">html colspan:rgb(25397106)">message}}
</>p>
</>p>
<>p>
<>button@click="html colspan:rgb(288950)">html colspan:rgb(98189288)">onNegativeClick"v-if="!html colspan:rgb(288950)">html colspan:rgb(98189288)">isOnlyPositive">{{html colspan:rgb(288950)">html colspan:rgb(98189288)">negativeText}}</>button>
<>button@click="html colspan:rgb(288950)">html colspan:rgb(98189288)">onPositiveClick">{{html colspan:rgb(288950)">html colspan:rgb(98189288)">positiveText}}</>button>
</>p>
</>p>
</>p>
</>transition>
</>template>
<>script>
exporthtml colspan:rgb(288950)">html colspan:rgb(25397106)">default{
html colspan:rgb(288950)">html colspan:rgb(73238288)">name:'my->html element',
html colspan:rgb(288950)">html colspan:rgb(288950)">props:{
html colspan:rgb(288950)">html colspan:rgb(2882110)">isShow:{
html colspan:rgb(288950)">html colspan:rgb(73238288)">type:Boolean,
html colspan:rgb(288950)">html colspan:rgb(25397106)">default:false
},
html colspan:rgb(288950)">html colspan:rgb(98189288)">negativeText:{
html colspan:rgb(288950)">html colspan:rgb(73238288)">type:String,
html colspan:rgb(288950)">html colspan:rgb(25397106)">default:'取消'
},
html colspan:rgb(288950)">html colspan:rgb(98189288)">positiveText:{
html colspan:rgb(288950)">html colspan:rgb(73238288)">type:String,
html colspan:rgb(288950)">html colspan:rgb(25397106)">default:'确定'
},
html colspan:rgb(288950)">html colspan:rgb(25397106)">message:{
html colspan:rgb(288950)">html colspan:rgb(73238288)">type:String,
html colspan:rgb(288950)">html colspan:rgb(25397106)">default:'确定?'
},
html colspan:rgb(288950)">html colspan:rgb(98189288)">isOnlyPositive:{
html colspan:rgb(288950)">html colspan:rgb(73238288)">type:Boolean,
html colspan:rgb(288950)">html colspan:rgb(25397106)">default:false
}
},
html colspan:rgb(288950)">html colspan:rgb(288111119)">data(){
return{
html colspan:rgb(288950)">html colspan:rgb(25397106)">visible:html colspan:rgb(288950)">html colspan:rgb(73238288)">this.html colspan:rgb(288950)">html colspan:rgb(2882110)">isShow
};
},
html colspan:rgb(288950)">html colspan:rgb(25397106)">methods:{
html colspan:rgb(288950)">html colspan:rgb(288950)">close:html colspan:rgb(288950)">html colspan:rgb(25397106)">function(){
html colspan:rgb(288950)">html colspan:rgb(73238288)">this.$html colspan:rgb(288950)">html colspan:rgb(288111119)">emit('html colspan:rgb(288950)">html colspan:rgb(288950)">closehtml element');
},
html colspan:rgb(288950)">html colspan:rgb(73238288)">open:html colspan:rgb(288950)">html colspan:rgb(25397106)">function(){
html colspan:rgb(288950)">html colspan:rgb(73238288)">this.$html colspan:rgb(288950)">html colspan:rgb(288111119)">emit('html colspan:rgb(288950)">html colspan:rgb(73238288)">openhtml element');
},
html colspan:rgb(288950)">html colspan:rgb(98189288)">onPositiveClick:html colspan:rgb(288950)">html colspan:rgb(25397106)">function(){
html colspan:rgb(288950)">html colspan:rgb(73238288)">this.$html colspan:rgb(288950)">html colspan:rgb(288111119)">emit('positiveCb');
},
html colspan:rgb(288950)">html colspan:rgb(98189288)">onNegativeClick:html colspan:rgb(288950)">html colspan:rgb(25397106)">function(){
html colspan:rgb(288950)">html colspan:rgb(73238288)">this.$html colspan:rgb(288950)">html colspan:rgb(288111119)">emit('negativeCb');
html colspan:rgb(288950)">html colspan:rgb(73238288)">this.html colspan:rgb(288950)">html colspan:rgb(288950)">close();
}
}
};
</>script>
<stylelang=">html onclick"scoped>
.>wrapper{
html colspan:rgb(288950)">html colspan:rgb(98189288)">position:fixed;
html colspan:rgb(288950)">html colspan:rgb(98189288)">overflow:auto;
html colspan:rgb(288950)">html colspan:rgb(2882110)">margin:0;
html colspan:rgb(288950)">html colspan:rgb(73238288)">left:0;
html colspan:rgb(288950)">html colspan:rgb(288950)">right:0;
html colspan:rgb(288950)">html colspan:rgb(2882110)">bottom:0;
html colspan:rgb(288950)">html colspan:rgb(288111119)">top:0;
html colspan:rgb(288950)">html colspan:rgb(25397106)">z-index:999999999;
html colspan:rgb(288950)">html colspan:rgb(98189288)">html colspan:rgb(288950)">html colspan:rgb(98189288)">background->html colspan:html colspan:rgb(288950)">html colspan:rgb(288111119)">rgba(0,0,0,0.25);
html colspan:rgb(288950)">html colspan:rgb(98189288)">font-family:"MicrosoftYahei";
}
>button{
html colspan:rgb(288950)">html colspan:rgb(2882110)">cursor:pointer;
html colspan:rgb(288950)">html colspan:rgb(98189288)">font-family:"MicrosoftYahei";
}
.html colspan:rgb(288950)">html colspan:rgb(288950)">close-btn{
html colspan:rgb(288950)">html colspan:rgb(2882110)">cursor:pointer;
html colspan:rgb(288950)">html colspan:rgb(98189288)">position:absolute;
html colspan:rgb(288950)">html colspan:rgb(288950)">right:15px;
html colspan:rgb(288950)">html colspan:rgb(288111119)">top:12px;
}
.>html element{
html colspan:rgb(288950)">html colspan:rgb(2882110)">height:180px;
html colspan:rgb(288950)">html colspan:rgb(288950)">width:300px;
html colspan:rgb(288950)">html colspan:rgb(98189288)">position:absolute;
html colspan:rgb(288950)">html colspan:rgb(73238288)">left:50%;
html colspan:rgb(288950)">html colspan:rgb(288111119)">top:50%;
html colspan:rgb(288950)">html colspan:rgb(2882110)">margin-html colspan:rgb(288950)">html colspan:rgb(73238288)">left:-150px;
html colspan:rgb(288950)">html colspan:rgb(2882110)">margin-html colspan:rgb(288950)">html colspan:rgb(288111119)">top:-90px;
html colspan:rgb(288950)">html colspan:rgb(98189288)">background:#F1F6FF;
html colspan:rgb(288950)">html colspan:rgb(98189288)">box-sizing:>border-box;
}
.html colspan:rgb(288950)">html colspan:rgb(288950)">close{
html colspan:rgb(288950)">html colspan:rgb(2882110)">cursor:pointer;
>html colspan:#c0ccda;
&:hover{
>html colspan:#20a0ff;
}
}
.>sign{
>text-align:html colspan:rgb(288950)">html colspan:rgb(73238288)">left;
html colspan:rgb(288950)">html colspan:rgb(98189288)">html colspan:rgb(288950)">html colspan:rgb(98189288)">background->html colspan:#579BFE;
>font-size:14px;
>html colspan:#fff;
>padding-html colspan:rgb(288950)">html colspan:rgb(73238288)">left:20px;
>padding-html colspan:rgb(288950)">html colspan:rgb(288111119)">top:12px;
>padding-html colspan:rgb(288950)">html colspan:rgb(2882110)">bottom:12px;
}
.>body{
html colspan:rgb(288950)">html colspan:rgb(2882110)">height:100px;
html colspan:rgb(288950)">html colspan:rgb(288950)">width:100%;
>display:table;
html colspan:rgb(288950)">html colspan:rgb(98189288)">box-sizing:>border-box;
>html colspan:#475669;
>font-size:14px;
.>cell{
>display:table->cell;
>vertical-align:middle;
>text-align:center;
>font-size:16px;
>html colspan:#777777;
}
}
.>footer{
>padding:20px;
>padding-html colspan:rgb(288950)">html colspan:rgb(288111119)">top:0;
>text-align:html colspan:rgb(288950)">html colspan:rgb(288950)">right;
html colspan:rgb(288950)">html colspan:rgb(98189288)">box-sizing:>border-box;
.>negative-btn{
>padding-html colspan:rgb(288950)">html colspan:rgb(73238288)">left:13px;
>padding-html colspan:rgb(288950)">html colspan:rgb(288950)">right:13px;
html colspan:rgb(288950)">html colspan:rgb(2882110)">height:25px;
line-html colspan:rgb(288950)">html colspan:rgb(2882110)">height:25px;
>font-size:12px;
>html colspan:#777777;
>border:1pxsolid#777777;
html colspan:rgb(288950)">html colspan:rgb(98189288)">html colspan:rgb(288950)">html colspan:rgb(98189288)">background->html colspan:white;
html colspan:rgb(288950)">html colspan:rgb(2882110)">margin-html colspan:rgb(288950)">html colspan:rgb(288950)">right:8px;
}
.>positive-btn{
>padding-html colspan:rgb(288950)">html colspan:rgb(73238288)">left:13px;
>padding-html colspan:rgb(288950)">html colspan:rgb(288950)">right:13px;
html colspan:rgb(288950)">html colspan:rgb(2882110)">height:25px;
line-html colspan:rgb(288950)">html colspan:rgb(2882110)">height:25px;
>font-size:12px;
>html colspan:#FD6434;
>border:1pxsolid#FD6434;
html colspan:rgb(288950)">html colspan:rgb(98189288)">html colspan:rgb(288950)">html colspan:rgb(98189288)">background->html colspan:white;
}
}
.>dialog-fade-enter-active{
>animation:>dialog-fade-in.3s;
}
.>dialog-fade-leave-active{
>animation:>dialog-fade-out.3s;
}
@keyframes>dialog-fade-in{
0%{
>transform:html colspan:rgb(288950)">html colspan:rgb(25397106)">translate3d(0,-20px,0);
>opacity:0;
}
100%{
>transform:html colspan:rgb(288950)">html colspan:rgb(25397106)">translate3d(0,0,0);
>opacity:1;
}
}
@keyframes>dialog-fade-out{
0%{
>transform:html colspan:rgb(288950)">html colspan:rgb(25397106)">translate3d(0,0,0);
>opacity:1;
}
100%{
>transform:html colspan:rgb(288950)">html colspan:rgb(25397106)">translate3d(0,-20px,0);
>opacity:0;
}
}
</style>
使用方法如下
template模板:
<p@click="html elementVisible=true">打开一个弹窗!!!!</p>
js代码:
importhtml elementfrom'./html element'
exportdefault{
name:'hello',
components:{
'html element':html element
},
data(){
return{
msg:'WelcometoYourVue.jsApp',
html elementVisible:false,//控制弹窗的显示隐藏
}
},
methods:{
deleteInfoClose:function(){
this.html elementVisible=false;
console.log('取消按钮');
}, //取消按钮的回调
deleteFollowStudent:function(){
this.html elementVisible=false;
console.log('确定按钮')//确定按钮的回调
}
}
}