vue中自定义弹出框,vue弹出提示框confirm组件

  vue中自定义弹出框,vue弹出提示框confirm组件

  这篇文章主要为大家详细介绍了某视频剪辑软件自定义弹框,实现确认框、提示框效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  本文实例为大家分享了某视频剪辑软件自定义弹框效果的具体代码,供大家参考,具体内容如下

  

1、自定义确认框和提示框

  根据传入的类型来判断是确认框或提示框

  模板

  过渡名称=确认-淡化

  div v-if= isshowconfix class= my-confirm @ click。stop= click fun( click cancel )

  div class=" confirm-content-wrap " @单击。停止

  H3 我的确认标题 v-show=标题文本!={{ titleText }}/h3

  p class= my-confirm-content“{ content } }/p

  我的操作

   div v-if= type=== confirm class= my-cancel-BTN @ click= click fun( click cancel )

  p class= my-BTN-text my-border-right { cancel text } }/p

  /div

  div class=确认-BTN @ click=点击乐趣(点击确认)

  p class= my-BTN-text“{确认文本} }/p

  /div

  /div

  /div

  /div

  /过渡

  /模板

  脚本类型=text/ecmascript-6

  导出默认值{

  data () {

  返回{

  isShowConfirm: false,//用于控制整个窗口的显示/隐藏

  标题文本: 操作提示, //提示框标题

  内容:说点什么., //提示框的内容

  取消文本: 取消, //取消按钮的文字

  确认文本: 确认, //确认按钮的文字

  键入:确认,//表明弹框的类型:确认-确认弹窗(有取消按钮);警报-通知弹框(没有取消按钮)

  outerData: null //用于记录外部传进来的数据,也可以给外部监听用户行为,事件的函数提供判断到底是哪个事件触发的

  }

  },

  方法:{

  显示(内容,配置){

  this.content=content 说点什么.

  如果(对象。原型。托斯特林。call(config)==[Object Object]){

  //确保用户传递的是一个对象

  这个。标题文本=配置。标题文本

  这个。取消文本=配置。取消文本 取消

  这个。确认文本=配置。确认文本 确认

  this.type=config.type 确认

  这个。外部数据=配置。数据 空

  }

  this.isShowConfirm=true

  },

  隐藏(){

  this.isShowConfirm=false

  this.titleText=操作提示

  this.cancelText=取消

  this.confirmText=确认

  this.type=确认

  this.outerData=null

  },

  点击乐趣(类型){

  这个emit(userBehavior ,type,this.outerData)

  this.hidden()

  }

  }

  }

  /脚本

  样式范围。我的-确认{

  位置:固定;

  top:0;

  左:0;

  右:0;

  底部:0;

  背景色:rgba(0,0,0,0.5);

  z指数:998;

  /* 这里防止当用户长按屏幕,出现的黑色背景色块,以及苹果手机横平时字体的缩放问题*/

  -WebKit-text-size-adjust:100%;

  -WebKit-tap-highlight-color:rgba(0,0,0,0);

  }

  /* 进入和出去的动画*/。确认-淡化-输入-激活{

  动画:不透明度0.3秒

  }。确认-淡入-激活。确认-内容-包装{

  动画:尺度0.3秒

  }。确认-淡化-保持激活{

  动画:outOpacity 0.2s

  }

  /* 包裹层容器样式*/。确认-内容-包装{

  位置:绝对;

  top:28%;

  左:0;

  右:0;

  宽度:280像素

  边距:0自动;

  背景色:# fff

  边框半径:5px

  z指数:999;

  用户选择:无;

  }

  /* 顶部标题部分*/。我的确认标题{

  padding-top:20px;

  文本对齐:居中;

  字体大小:20px

  字体粗细:500;

  颜色:# 333;

  }

  /* 中间内容部分*/。我的确认内容{

  填充:0 15px

  padding-top:20px;

  边距-底部:32px

  文本对齐:居中;

  字体大小:16px

  颜色:# 666;

  行高:1.5;

  }

  /* 底部按钮样式*/。我的操作{

  显示器:flex

  border-top:1px solid # eee;

  }。我的-手术。我的-取消-btn,1000 .确认-btn {

  flex:1;

  }。我的-手术。确认-btn {

  颜色:# ffb000

  }。我的-手术my-btn-text {

  文本对齐:居中;

  字体大小:16px

  边距:8px 0;

  填充:6px 0;

  }

  /* 其他修饰样式*/。我的右边框{

  border-right:1px solid # eee;

  }

  /* 进来的动画*/

  @关键帧不透明度{

  0% {

  不透明度:0;

  }

  100% {

  不透明度:1;

  }

  }

  @关键帧比例{

  0% {

  transform:scale(0);

  }

  60% {

  变换:缩放(1.1);

  }

  100% {

  变换:缩放(1);

  }

  }

  /* 出去的动画*/

  @关键帧不透明度{

  0% {

  不透明度:1;

  }

  100% {

  不透明度:0;

  }

  }

  /风格

  

2、调用:

  (1)提示框的使用:

  对话框视图ref=我的对话框 @用户行为= changeData /对话框视图

  ……

  //提示框

  这个. refs.myDialog.show(内容,{

  类型:"警报",

  确认文本:好,

  取消文本: 取消,

  标题文本: ,

  数据:空

  })

  效果:

  (2)确认框:

  这个 refs.myDialog.show(要兑换这个商品么?, {

  键入:确认,

  确认文本: 立即兑换,

  取消文本: 不用了,

  标题文本: ,

  数据:{shop: shop,operate: exchange}

  })

  效果:

  当为确认框时的按键处理:changeData

  对话框视图ref=我的对话框 @用户行为= changeData /对话框视图

  ……

  变更数据(类型,数据){

  console.log(changeData ,Data)

  if (type===clickConfirm) {

  if (data.operate===exchange) {

  //this.reduceEnergy(data.shop)

  this.exchangeCoupon(data.shop)

  } else if(数据。operate===下载){

  window.location=data.url

  } else if(数据。operate===登录){

  这个。uplusapi。upvdnmodule。转到页面({ URL: mpaas://用户中心 })

  this.isLogin=false

  }

  }

  },

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: