首先:应该创建一个单文件组件,样式如下:
<template>
<transition class="slide">
<div class="add-song" v-show="showFlag" @click.stop>
<div class="header">
<h1 class="title">添加歌曲到列表</h1>
<div class="close">
<i class="icon-close" @click="hide"></i>
</div>
</div>
<div class="search-box-wrapper">
</div>
<div class="shortcut" v-show="!query"></div>
<div class="search-result" v-show="query">
</div>
</div>
</transition>
</template>
<style lang="stylus" scoped>
@import '~common/stylus/variable'
@import '~common/stylus/mixin'
.add-song
position fixed
top 0
left 0
right 0
bottom 0
z-index 200
background $color-background
&.slide-enter-active, &.slide.drop-leave-active
transition all 0.3s
&.slide-enter, &.slide-leave-to
transform translate3d(100%, 0, 0)
.header
position relative
height 44px
text-align center
.title
line-height 44px
font-size $font-size-large
color $color-text
.close
position absolute
top 0
right 8px
.icon-close
display block
padding 12px
font-size 20px
color $color-theme
.search-box-wrapper
margin 20px
.shortcut
.list-wrapper
position absolute
top 165px
bottom 0
width 100%
.list-scroll
height 100%
overflow hidden
.list-inner
padding 20px 30px
.search-result
position fixed
top 124px
bottom 0
width 100%
.tip-title
text-align center
padding 18px 0
font-size 0
.icon-ok
font-size $font-size-medium
color $color-theme
margin-right 4px
.text
font-size $font-size-medium
color $color-text
</style>
然后添加事件:
methods: {
show () {
this.showFlag = true
},
hide () {
console.log(1)
this.showFlag = false
}
},
在父组件里面去调用show方法
showPlaylist () {
this.$refs.playlist.show()
},