抖音资讯

douyinzx

vue弹窗组件的实现(vue实现输入框搜索功能)

iseeyu2年前 (2024-05-05)抖音资讯125

示例简介

本实例介绍利用Vue实现弹窗组件,弹窗界面显示样式可根据父组件任意调整;

最终效果:

 

实现过程

一、子组件代码如下(popup.vue),原理分析:

1、显示和隐藏弹窗时,使用transition的动画效果,从顶部往下移动显示,往顶部移动隐藏;

2、弹窗的显示和隐藏都是由父组件通过props向子组件传递数据(isShow)来控制;点击关闭和遮罩层会通过$emit给父组件发送消息(on-close)更改isShow数据。

<template>
  <div class="popup-box">
    <div class="popup-mask" v-if="isShow" @click="closePopup"></div>
    <transition name="popup-drop">
      <div class="popup-content" v-if="isShow">
        <div class="popup-close" @click="closePopup"><img src="../assets/images/slide/close.png" alt="" /></div>
        <slot>空数据</slot>
      </div>
    </transition>
  </div>
</template>
<script>
export default {
  props: {
    isShow: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {}
  },
  methods: {
    closePopup () {
      this.$emit('on-close');
    }
  }
}
</script>
<style lang="less" scoped>
.popup-box {
  .popup-mask {
    background-color: #000;
    opacity: 0.3;
    position: fixed;
    z-index: 99;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }


  .popup-content {
    position: fixed;
    width: 50%;
    max-height: 50%;
    overflow: auto;
    background-color: #fff;
    top: 30%;
    left: 50%;
    margin-left: -25%;
    z-index: 100;
    box-shadow: 7px 7px 10px 0 rgba(76, 110, 245, .1);
    border-radius: 5px;
    padding: 30px;


    .popup-close {
      position: absolute;
      right: 10px;
      top: 10px;
      width: 20px;
      height: 20px;
      text-align: center;
      cursor: pointer;
      img {
        width: 100%;
      }
      &:hover {
        img {
          transform: scale(1.5, 1.5);
        }
      }
    }
  }
}


/* 弹窗动画 */
.popup-drop-enter-active {
  transition: all 0.5s ease;
}


.popup-drop-leave-active {
  transition: all .3s ease;
  transform: translateY(-500px);
}


.popup-drop-enter {
  transform: translateY(-500px);
}
</style>

二、父组件代码如下(popupPage.vue),原理分析:

主要用来传数据(isShow)给子组件,并编写界面样式替换slot。

<template>
  <div>
    <button @click="showPopup">点击显示弹窗</button>
    <popup :isShow="isShow" @on-close="closePopup">
      <div class="login-title">欢迎登录</div>
      <div class="login-box">
        <div class="line"><label for="username">用户名:</label><input type="text" v-model="username" name="username" id="username" placeholder="请输入用户名" /></div>
        <div class="line"><label for="password">密码:</label><input type="password" v-model="password" name="password" id="password" placeholder="请输入密码" /></div>
        <a href="javascript:;" class="login-button" @click="clickLogin">登 录</a>
      </div>
    </popup>
  </div>
</template>
<script> import Popup from '../components/popup' export default { components: { Popup }, data() { return { isShow: false, username: '', password: '' } }, methods: { showPopup() { this.isShow = true; }, closePopup() { this.isShow = false; }, clickLogin () { console.log(this.username, this.password); } } } </script>
<style lang="less" scoped>
.login-title {
  text-align: center;
  font-size: 20px;
}


.login-box {
  margin-top: 30px;
  padding: 0 20px;


  .line {
    display: flex;
    margin-bottom: 30px;


    label {
      width: 60px;
      text-align: right;
      margin-right: 10px;
      vertical-align: middle;
      margin-top: 6px;
    }


    input {
      flex: 1;
      padding: 8px 5px;
    }
  }


  .login-button {
    margin-top: 10px;
    float: right;
    display: inline-block;
    color: #fff;
    background-color: #419efe;
    text-align: center;
    height: 38px;
    line-height: 38px;
    width: 80px;
    border-radius: 5px;
  }
}
</style>

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/44235.html

相关文章

直播代运营合同避坑:报价、KPI、违约金一次说清

直播代运营合同避坑:报价、KPI、违约金一次说清

去年西安一家女装店老板拿着合同来找我看,就一页纸,上面写着“保证月销30万”。签的时候高高兴兴,三个月后只卖了8万,代运营公司一句“市场环境不好”就撒手不管了。老板想退钱,翻出合同才发现,什么叫销售额、含不含退款、考核多久、数据以谁为准,一个字都没写。这种坑我这两年见了不止十回。 直播代运营合同看...

抖音千川投放怎么投?2026新手起量避坑指南

抖音千川投放怎么投?2026新手起量避坑指南

西安一家做本地餐饮的老张,去年底听人说抖音能拉客,先充了3000块投DOU+。一个月下来,视频播放量是上去了,团购券没卖出几张。后来他才搞清楚,DOU+是给内容加热用的,真正能把团购券卖出去的工具叫巨量千川。2026年,在抖音上做生意的商家基本绕不开这两个东西:DOU+管内容热度,千川管成交转化。...

抖音短视频带货怎么做?2026年挂车出单实操指南

抖音短视频带货怎么做?2026年挂车出单实操指南

直播带货要开播、要人设、要话术,很多西安商家试了两次就放弃了。其实还有一条更轻的路:短视频带货。拍一条视频挂上商品链接,用户刷到直接下单,不用开播,不用连麦,一个人一部手机就能跑。我见过高新一家卖手工辣条的档口,老板就拍后厨炒料,一条视频爆了,挂车链接三天卖了四千多单。我自己也帮几个西安客户跑过这...

抖音矩阵号怎么做?2026年企业多账号布局实操

抖音矩阵号怎么做?2026年企业多账号布局实操

有个西安做门窗的老板跟我抱怨,说一个号发了大半年,播放量卡在一两千上不去,问我是不是号被限流了。我让他去搜搜本地同行,人家三个号轮着发,客户搜「西安封阳台」,翻两屏全是那一家。这不是玄学,就是矩阵。说白了,矩阵不是一个号发十遍,也不是开十个号复制粘贴,而是按客户会搜什么、信什么,把账号分工排好。尤...

抖音蹭热点总翻车?2026年商家追热点的正确姿势

抖音蹭热点总翻车?2026年商家追热点的正确姿势

上周有个做建材的老板问我:热搜上那个话题全网都在拍,我是不是也该跟一条?我反问他,拍完这条视频,客户凭什么找你买瓷砖?他愣了半天没答上来。这就是大多数商家蹭热点的真实状态——看见热点就冲,拍完发现除了播放量,什么都没留下。热点不是不能蹭,是大多数人都蹭错了。我盘过自己服务的客户数据:蹭热点视频的平...

企业抖音蓝V认证2026流程:材料准备与审核避坑

企业抖音蓝V认证2026流程:材料准备与审核避坑

企业号蓝V认证,现在几乎成了西安本地商家做抖音的起手式。不管是餐饮、装修、教育还是批发档口,想挂电话、想开团购、想投DOU+,基本都绕不开这一步。这篇文章把2026年最新的蓝V认证流程、要准备的材料、审核容易挂的地方一次讲清楚。蓝V认证到底有什么用?值不值600块蓝V说白了就是抖音给企业主体做的实...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片