前端Vue中自定义Popup弹框、按钮及内容的设计与实践

标题:前端Vue中自定义Popup弹框、按钮及内容的设计与实践

一、引言

在Web前端开发中,弹框(Popup)是一种常见的用户界面元素,用于向用户显示额外的信息或提供额外的功能。然而,标准的弹框往往不能满足所有需求,因此,自定义弹框的需求应运而生。本文将探讨如何在Vue框架中实现自定义弹框,以及如何通过自定义按钮和内容来提升用户体验。

图片

图片

二、自定义弹框的设计与实现

在Vue中,我们可以使用组件来实现自定义弹框。首先,我们需要定义弹框的HTML结构,包括标题、内容、关闭按钮等部分。然后,我们可以通过Vue的样式绑定和事件监听来实现弹框的显示和隐藏,以及按钮的点击事件。

具体来说,我们可以创建一个名为cc-popup的组件,通过isShow属性来控制弹框的显示和隐藏,通过widthheightradius属性来控制弹框的尺寸和圆角。在组件内部,我们可以使用view元素来定义弹框的内容,包括标题、文本、输入框和按钮等。同时,我们还可以使用image元素来显示图片。

三、自定义按钮的探索与实践

在自定义弹框中,按钮是非常重要的元素。它们可以用于触发各种动作,如确认、取消、提交等。在Vue中,我们可以使用button元素来创建按钮,并通过样式绑定和事件监听来实现各种交互效果。

具体来说,我们可以使用:style绑定来控制按钮的样式,如背景色、文字颜色、边框等。同时,我们还可以使用@click事件监听来处理按钮的点击事件,以实现各种交互效果。例如,我们可以监听点击事件来触发弹框的关闭操作,或者触发其他业务逻辑。

四、内容的定制与优化

除了按钮外,弹框的内容也是非常重要的。一般来说,弹框的内容可以是文本、输入框、图片等。在Vue中,我们可以使用各种HTML元素来创建这些内容,并通过样式绑定来实现内容的定制与优化。

例如,我们可以使用<p>元素来显示文本内容,使用:style绑定来控制文本的样式。对于输入框,我们可以使用<input>元素来实现,并通过:value@input事件来实现输入值的获取和更新。

五、案例分析与应用

为了更好地理解如何实现自定义弹框,我们将通过一个具体的案例来进行说明。假设我们要创建一个弹框,用于显示一段文本和一个图片,并提供一个确认按钮。首先,我们需要定义弹框的HTML结构:

 

使用方法
复制代码
<view class="popUpBtn" @click="popupClick">
            点击显示弹框</view>

<!-- 使用组件 isShow:设置弹框是否显示 width:宽度 height:高度 radius:圆角 -->

<cc-popup :isShow='isshow' width="calc(100vw - 70px)" height="346px" radius="16rpx">
            <!-- 自定义展示内容 -->
            <view class="modelContent">

                <view class="titleV">

                    弹框标题
                </view>

                <view style="margin-top: 20px; color: #666666; margin: 6px 12px;">

                    这是弹框内容 这是弹框内容 这是弹框内容 这是弹框内容
                </view>

                <image class="imageV" :src="mySrc"></image>

                <button style="width: 80%; height: 48px;margin-top: 20px; background-color: seagreen;color: white;"> 确定
                </button>

            </view>
            <!-- 自定义关闭按钮 -->
            <view class="close" @click="isshow=false">✕</view>

</cc-popup>
HTML代码实现部分
复制代码<template>
    <view class="content">

        <view class="popUpBtn" @click="popupClick">
            点击显示弹框</view>

        <!-- 使用组件 isShow:设置弹框是否显示 width:宽度 height:高度 radius:圆角 -->
        <cc-popup :isShow='isshow' width="calc(100vw - 60px)" height="346px" radius="16rpx">
            <!-- 自定义展示内容 -->
            <view class="modelContent">

                <view class="titleV">

                    弹框标题

                </view>

                <view style="margin-top: 20px; color: #666666; margin: 6px 12px;">

                    这是弹框内容 这是弹框内容 这是弹框内容 这是弹框内容
                </view>

                <image class="imageV" :src="mySrc"></image>

                <button style="width: 80%; height: 48px;margin-top: 20px; background-color: seagreen;color: white;"> 确定
                </button>

            </view>
            <!-- 自定义关闭按钮 -->
            <view class="close" @click="isshow=false">✕</view>
        </cc-popup>

    </view>
</template>

<script>
    export default {
        components: {

        },
        data() {
            return {
                title: 'Hello',
                companyList: [{}, {}, {}],
                isshow: false,
                mySrc: '../../static/apple.jpg'
            }
        },
        onLoad() {

        },
        methods: {

            popupClick() {

                this.isshow = !this.isshow;
            }
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;

    }

    .popUpBtn {
        height: 80rpx;
        line-height: 80rpx;
        width: 320rpx;
        margin-top: 120rpx;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 50rpx;
        background-color: bisque;
        text-align: center;
    }

    .modelContent {
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        flex-direction: column;
    }

    .titleV {

        width: 100%;
        height: 36px;
        line-height: 30px;
        font-weight: 550;
        text-align: center;
        margin-top: 8px;
        font-size: 17px;
        border-bottom: 1px solid #F1F1F1;
    }

    .imageV {

        margin-top: 0px;
        width: calc(100vw - 100px);
        height: calc((100vw - 100px) * 0.567);
    }

    .close {
        width: 60rpx;
        height: 60rpx;
        color: #FFFFFF;
        line-height: 60rpx;
        text-align: center;
        border-radius: 50%;
        border: 1px solid #FFFFFF;
        position: relative;
        bottom: -10%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
</style>

 请关注我的微信技术公众号: 前端组件开发

d848d5658a07453c843277846948c608.png

欢迎加入我们的前端组件学习交流群

a4d0d0ea270f48d1b22cec9aa7e14110.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/450494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分布式系统超详解析

目录 常见概念 基本概念 应用/系统 模块/组件 分布式 集群 主/从 中间件 评价指标 可用性 响应时长 吞吐量/并发量 架构演进 单机架构 应用数据分离架构 引入更多的应用服务器结点 读写分离架构 引入缓存--冷热分离的结构 垂直分库 业务拆分--微服务 为了更…

网页脚本 bilibili006:视频下载脚本修改+油猴脚本发布

视频下载脚本修改 原始脚本的下载的视频名称总是错的&#xff0c;调用的代码为 document.querySelector(.tag-txt).textContent &#xff0c;发现这是标签的名称 查找视频名称所在的类名称 <h1 title"任天堂告yuzu模拟器&#xff0c;龙神模拟器会被殃及池鱼吗"…

torch.cuda.is_available()=False

问题&#xff1a; 显示torch.cuda.is_available()False 解决办法&#xff1a;说明这个虚拟环境不可用&#xff0c;删除虚拟环境&#xff0c;重建一个新的虚拟环境 1、删除原来的虚拟环境&#xff0c;假如原虚拟环境为pytorch-old&#xff0c;输入以下命令&#xff0c;先退出当…

如何制作一个包含图文视频信息的二维码如何生成?办公多功能利器!

一个包含图片、文字、视频、PDF文件等多种内容的二维码——二维彩虹H5编辑二维码正在各行各业发挥着重要作用。 和普通的二维码不同&#xff0c;H5编辑二维码可以展示更多种类&#xff08;图文视频等&#xff09;、和数量的内容&#xff0c;被广泛应用在多种办公场景。你可以将…

2024年春招助学活动:一批FPGA高端项目让你轻松拿到大厂offer

这里写目录标题 1、前言2、FPGA行业现状3、简历怎么写4、FPGA高端项目4.1 图像类&#xff1a;FPGA图像缩放多路视频拼接4.2 通信类&#xff1a;千兆网UDP协议栈4.3 通信类&#xff1a;万兆网UDP协议栈4.4 图像通信综合&#xff1a;FPGA图像缩放UDP网络视频传输4.5 图像高速接口…

Java零基础入门到精通_Day 2

08-HelloWorld系例常见问题 4.1 BUG的解决 1:具备识别BUG的能力 多看 2:具备分析BUG的能力 多思考&#xff0c;多查阅资料 3:具备解决BUG的能力 多尝试&#xff0c;多总结 09-Notepad软件的安装和使用 略 10-注释 1.1 注释分类 单行注释 格式://注释信息 多行注释 格式:/*…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的铁轨缺陷检测系统(Python+PySide6界面+训练代码)

摘要&#xff1a;开发铁轨缺陷检测系统对于物流行业、制造业具有重要作用。本篇博客详细介绍了如何运用深度学习构建一个铁轨缺陷检测系统&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5&#xff0c;展示了不同模…

unity学习(51)——服务器三次注册限制以及数据库化角色信息6--完结

同一账号只写第一次&#xff0c;不同账号第一次爆炸 &#xff0c;就因为下面部分得到逻辑有问题 修改后的代码如下&#xff1a;1.成功完成角色注册信息的数据库化记录。2.每个账号上限3个角色。3.角色是可以重名的&#xff0c;但是角色的id不会重名。 internal class UserCach…

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题⑤

2024 年广东省职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项样题⑤ 模块一 私有云&#xff08;50 分&#xff09;任务 1 私有云服务搭建&#xff08;10 分&#xff09;任务 2 私有云服务运维&#xff08;25 分&#xff09;任务 3 私有云运维开发&#xf…

DC/DC高压模块直流升压可调稳压输出升压变换器5V12V24V48V转50V110V150V130V200V250V300V450V500V600V800V

特点 效率高达 80%以上1*2英寸标准封装单电压输出价格低稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上 应用 HRB W2~40W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、9~18V、及18~36V、…

bugreport中查看开发者选项动画时长缩放日志

首先打开开发者选项&#xff0c;抓取一份bugreport解压后找到bugreport-机型-时间点.zip文件&#xff0c;然后再解压此文件 解压后进入该文件&#xff0c;找到bugreport-机型-时间点.txt文件 打开此文件&#xff0c;搜索“animator_duration_scale”关键字&#xff0c;找到图片…

虚拟机(KVM)克隆

当需要批量部署虚拟机时&#xff0c;可以使用克隆虚拟机的方式来进行。 使用图形界面来克隆虚拟机。 [rootzhoujunru_node1 zhou]# virsh list --allId Name State ------------------------------ vm01 shut off- vm01-clone shut off克隆完成。

如何在Linux本地搭建Tale网站并实现无公网ip远程访问

文章目录 前言1. Tale网站搭建1.1 检查本地环境1.2 部署Tale个人博客系统1.3 启动Tale服务1.4 访问博客地址 2. Linux安装Cpolar内网穿透3. 创建Tale博客公网地址4. 使用公网地址访问Tale 前言 今天给大家带来一款基于 Java 语言的轻量级博客开源项目——Tale&#xff0c;Tale…

LeetCode # 1161. 最大层内元素和

1161. 最大层内元素和 题目 给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层&#xff0c;而根节点的子节点位于第 2 层&#xff0c;依此类推。 请返回层内元素之和 最大 的那几层&#xff08;可能只有一层&#xff09;的层号&#xff0c;并返回其中 最小 的那个。…

【Consul】注册Consul服务时报错404

【Consul】注册Consul服务时报错404 大家好 我是寸铁&#x1f44a; 总结了一篇golang注册Consul服务时报错404✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 问题背景 今天寸铁想注册一个服务到Consul服务中心&#xff0c;却发现报错了&#xff0c;错误码是404&#xff0c;下面和…

【 TypeScript 】对TypeScript中泛型的理解?应用场景?

1. 是什么 泛型程序设计(generic programming)是程序设计语言的一种风格或范式 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型 在typescript中&#xff0c;定义函数&#xff0c;接口或者类的时候&#xff…

力扣--深度优先算法/回溯算法90.子集Ⅱ

思路分析&#xff1a; 成员变量&#xff1a; result: 用于存储最终的子集结果。path: 用于存储当前正在构建的子集。 DFS函数&#xff1a; dfs(vector<int>& nums, int start): 递归地生成子集。 从给定的start索引开始遍历数组。如果当前元素与前一个元素相同&#…

基于STM32的温湿度数据采集系统

目录 目录 I 摘要 I Abstract II 第一章 绪论 1 1.1温湿度传感器的背景及意义 1 1.2温湿度传感器国内发展现状 1 1.3温湿度传感器的发展趋势 2 第二章 温湿度原理及相关技术 3 2.1温湿度传感器 3 2.1.1温度传感器 3 2.1.2 湿度传感器 4 2.1.3 温湿度传感器物理参数及定义 5 2.…

计算机组成原理-练手题集合【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下计算机组成原理中的各章练手题&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王道的计算机组成原理和西电的计算机组成原理。 计算机组成原理系列文章传送门&#xff1a; 第一/二章 概述和数…

信钰证券|股票多少岁可以开户?怎么开户?

网上处理股票开户要求投资者年龄为18-70周岁&#xff08;16-18周岁要求提交收入证明才能开户&#xff0c;70周岁及70周岁以上需求自己带身份证和银行卡去营业部现场处理开户&#xff09;。 开户流程&#xff1a; 1、选好券商&#xff0c;下载并注册相关券商APP&#xff1b; …