美文网首页
vue-cli 移动端底部弹出菜单动画效果

vue-cli 移动端底部弹出菜单动画效果

作者: 郝艳峰Vip | 来源:发表于2018-12-25 13:40 被阅读0次

前沿

这是在做移动端经常会用到的效果,所以封装一下,方便以后使用。动画效果都已实现,只需要直接往里边写内容就好了。话不多说,上代码。


里边实现的功能有

点击按钮弹层由下渐渐弹入的动画效果
点击黑色遮罩区域关闭弹层
可以自由插入自己想要的内容

在自己公共的组件文件夹下,这里一般都是components下,新建一个CustomPopup文件夹,里边新建一个index.vue文件,这里边放的是封好的弹出框的组件。里边使用到了插槽slot,目的就是为了方便插入内容

index.vue
<template>
    <div>
        <!-- 弹出层 -->
        <div :class="{'CustomPopup':showCustomPopup}" @click="maskClick"></div>
        <div class="CustomPopupContent " :class="{'CustomPopupContentShow':showCustomPopup}">
            <slot name="PoperContent"></slot>
        </div>
    </div>
</template>

<script>
    export default {
        data() {
            return {
               showCustomPopup: false,
            };
        },
        methods: {
            showCustom() {
                this.showCustomPopup = true;
            },
            maskClick() {
                this.showCustomPopup = false;
            }
        }
    }
</script>

<style scoped>
    .CustomPopup {
        height: 100%;
        position: fixed;
        z-index: 1000;
        top: 0;
        right: 0;
        left: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.6);
    }

    .CustomPopupContent {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        transition: all 0.3s ease;
        transform: translateY(100%);
        z-index: 3000;
    }

    .CustomPopupContentShow {
        transform: translateY(0);
    }
</style>

接下来就是在你需要使用的页面直接引入,使用就可以了,下边展示一个demo.可以随意定义自己的内容。

<template>
<div>
<div class="DetailsTags" @click="showCustomPopupClick">
    <div class="Detailscenter F12 ML10">7天无理由退货</div>
</div >
<CustomPopup ref="CustomPopupRef">
    <div slot="PoperContent" class="PoperContentView">
          <div class="ServiceNoteTitle W100">服务说明</div>
             <icon @click="closerButton" class="iconfont closer closerButton"></icon>                   
    </div>
</CustomPopup>
</div>
</template>
<script>
    import CustomPopup from '../../components/CustomPopup/index.vue'
    export default {
        components: {
            CustomPopup
        },
        data() {
            return {
            }
        },
        methods: {
            showCustomPopupClick() {
                this.$refs.CustomPopupRef.showCustom();
            },
            closerButton() {
                this.$refs.CustomPopupRef.maskClick();
            }
        }
    }
</script>
<style scoped>
    .PoperContentView {
        height: 1000rem;
        background: #FFFFFF;
        border-top-left-radius: 16rem;
        border-top-right-radius: 16rem;
    }
    .ServiceNoteTitle {
        height: 100rem;
        border-bottom: 1px solid #EEEEEE;
        text-align: center;
        line-height: 100rem;
    }

    .closerButton {
        position: absolute;
        right: 10rem;
    }
</style>

结束语

至此,一个完整的自定义的弹出层就写好了,以后直接使用就可以了,有哪里不懂得小伙伴或者有什么改进的地方,评论区评论,大家一起进步。

相关文章

网友评论

      本文标题:vue-cli 移动端底部弹出菜单动画效果

      本文链接:https://www.haomeiwen.com/subject/dlcflqtx.html