当前位置: 首页 > news >正文

用 UniApp 打造新颖美观的弹出框

 

在移动应用开发中,弹出框是一种常见且实用的交互组件,它能够有效地向用户展示重要信息或获取用户的反馈。UniApp 作为一款优秀的跨平台开发框架,提供了强大的功能和丰富的样式支持,让我们可以轻松实现各种独特的界面效果。本文将详细介绍如何使用 UniApp 实现一个新颖美观的弹出框,采用多巴胺配色方案,使界面更加活泼和吸引人。

<template>
  <view class="page-container">
    <!-- 触发弹出框的按钮 -->
    <button @click="showPopup = true">打开弹出框</button>
    <!-- 弹出框组件 -->
    <view class="popup-mask" v-if="showPopup" @click="closePopup">
      <view class="popup-box" @click.stop>
        <view class="popup-header">
          <text>重要提示</text>
          <button class="close-btn" @click="closePopup">×</button>
        </view>
        <view class="popup-content">
          <text>这是一个弹出框示例,你可以在这里展示重要信息。</text>
        </view>
        <view class="popup-footer">
          <button @click="closePopup">确认</button>
        </view>
      </view>
    </view>
  </view>
</template>
<script>
export default {
  data() {
    return {
      showPopup: false
    };
  },
  methods: {
    // 关闭弹出框的方法
    closePopup() {
      this.showPopup = false;
    }
  }
};
</script>
/* 页面容器样式 */
.page-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

/* 弹出框遮罩层样式 */
.popup-mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  animation: fadeIn 0.3s ease;
}

/* 弹出框主体样式 */
.popup-box {
  width: 80%;
  max-width: 300px;
  background: linear-gradient(to bottom, #f6d365, #fda085);
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  position: relative;
}

/* 弹出框头部样式 */
.popup-header {
  padding: 15px;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* 关闭按钮样式 */
.close-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  background: none;
  border: none;
  font-size: 24px;
  color: white;
  cursor: pointer;
  outline: none;
}

/* 弹出框内容区域样式 */
.popup-content {
  padding: 20px;
  text-align: center;
  color: #333;
}

/* 弹出框底部样式 */
.popup-footer {
  display: flex;
  justify-content: center;
  padding: 15px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.popup-footer button {
  background-color: #f6d365;
  border: none;
  padding: 10px 20px;
  border-radius: 5px;
  color: white;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

/* 淡入动画关键帧 */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

 

 

相关文章:

  • C#多线程
  • UEFI Spec 学习笔记---11 - Protocols — UEFI Driver Model(1)
  • 嵌入式音视频开发(二)ffmpeg音视频同步
  • 大一计算机的自学总结:前缀树(字典树、Trie树)
  • 【Ai】辅助编程利器:Cline、Continue
  • 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1)
  • #渗透测试#批量漏洞挖掘#Apache Log4j反序列化命令执行漏洞
  • 基于AdaIN的实时图像风格迁移-照片艺术化
  • 初识LLMs
  • 第四十三篇——零和博弈(鞍点理论):如何找到双方的平衡点?
  • 【Linux系统】生产者消费者模型:基于阻塞队列 BlockingQueue
  • 【笔记】LLM|Ubuntu22服务器极简本地部署DeepSeek+API使用方式
  • 使用apt-rdepends制作软件离线deb安装包
  • 网站搭建基本流程
  • RK3568平台开发系列讲解(PWM篇)SG90 舵机驱动实验
  • 蓝桥杯题目(36进制)
  • Recall(召回率)和 Precision(精确率) 的区别和F1分数
  • UML顺序图的建模方法及应用示例
  • 一、《重学设计模式》-设计模式简介
  • 3.9 用户反馈智能分析实战:从情感识别到产品优化的闭环设计指南
  • 法国宣布投资1亿欧元吸引外国科研人员
  • 贵州黔西市载人游船倾覆事故已致3人遇难,14人正在搜救中
  • 单阶段遭遇零封偶像奥沙利文,赵心童要让丁俊晖预言成真
  • 波兰斯基最新回忆录追述“二战”童年往事
  • “五一”假期国铁集团计划日均开行旅客列车超1.2万列
  • 韩国法院将重审李在明案,韩德洙入局能否为大选带来变数?