学习Uni-app开发小程序Day20

今天学习了:页面的渐变背景、使用deep修改子组件样式、全屏页面absolute定位布局和fit-content内容宽度、遮罩层状态转换及日期格式化、uni-popup弹窗层制作弹出信息

页面的渐变背景

需要设置页面背景,使用的是多个页面,这样就可以把背景做成组件,只用在需要的地方调用,例如:,这里是某一页面的最外层的盒子,这里是给盒子定义了一个名称,然后在添加了自定义的样式pageBg,在文件夹common下的scss文件,

.pageBg{background: linear-gradient(to bottom,transparent,#fff 400rpx),linear-gradient(to right,#beecd8 20%,#F4E2D8); min-height: 80vh;}

这就实现了页面的渐变。说真的,小白不清楚为什么,只是知道怎么用,这里老师有文档详细解释,只是自己看的云里雾里的,
css渐变背景,linear-gradient()线性渐变和radial-gradient()径向渐变

deep的使用

:deep(){.uni-icons{color: $brand-theme-color !important;}}

这是使用deep修改子组件的样式,里面有关键字 !important,这里并不是很清楚,只能是在网上查看,看是什么意思,
deep的使用

absolute定位布局和fit-content内容宽度

这是在当全局都有使用的时候,可以把相同的这部分样式放在外部,这样子组件就不用在写这个了,

	&>view {position: absolute;left: 0;margin: auto;right: 0;color: #fff;width: fit-content; //fit-content代表内容多大自定义宽度}

这就是放在外部,其他子组件就不用写了,这里是用的&>view

遮罩层状态转换及日期格式化

这里是在页面上添加浮框,
在这里插入图片描述
就是做成这种效果,这里不做过多说明,直接上代码

.mask {&>view {position: absolute;left: 0;margin: auto;right: 0;color: #fff;width: fit-content; //fit-content代表内容多大自定义宽度}.goBack {}.count {top: 10vh;background: rgba(0, 0, 0, 0.3);font-size: 28rpx;border-radius: 40rpx;padding: 8rpx 28rpx;backdrop-filter: blur(10rpx);}.time {font-size: 140rpx;top: calc(10vh + 80rpx);font-weight: 100;line-height: lem;text-shadow: 0 4rpx rgba(0, 0, 0, 0.3);}.data {font-size: 34rpx;top: calc(10vh + 230rpx);text-shadow: 0 2rpx rgba(0, 0, 0, 0.3);}.footer {background: rgba(255, 255, 255, 0.8);bottom: 10vh;width: 65vw;height: 120rpx;border-radius: 120rpx;color: #000;display: flex;justify-content: space-around;align-items: center;box-shadow: 0 2rpx 0 rgba(0, 0, 0, 0.1);backdrop-filter: blur(20rpx);.box {display: flex;flex-direction: column;align-items: center;justify-content: center;padding: 2rpx 12rpx;.text {font-size: 26rpx;color: $text-font-color-2;}}}}

这里主要是样式的使用,下面是页面的布局

<view class="mask" v-if="maskState"><view class="goBack"></view><view class="count">3/9</view><view class="time"><uni-dateformat :date="Date.now()" format="hh:mm"></uni-dateformat></view><view class="data"><uni-dateformat :date="Date.now()" format="MM月dd日"></uni-dateformat></view><view class="footer"><view class="box" @click="clickInfo"><uni-icons type="info" size="28"></uni-icons><text class="text">信息</text></view><view class="box" @click="clickScore"><uni-icons type="star" size="28"></uni-icons><text class="text">5分</text></view><view class="box"><uni-icons type="download" size="23"></uni-icons><text class="text">下载</text></view></view></view>

uni-popup弹窗层制作弹出信息

这是最复杂的,目前只是跟着视频做出来的,但是没有达到自己弄来
在这里插入图片描述
这是效果图,也是当期这个也买最复杂的布局和样式,这里就把全部代码放着,自己目前也是不怎么清楚

<template><view class="preview"><swiper current autoplay indicator-dots :interval="3000" :duration="1000"><swiper-item v-for="item in 4"><image @click="maskChange" src="../../common/images/preview1.jpg" mode="aspectFilla"></image></swiper-item></swiper><view class="mask" v-if="maskState"><view class="goBack"></view><view class="count">3/9</view><view class="time"><uni-dateformat :date="Date.now()" format="hh:mm"></uni-dateformat></view><view class="data"><uni-dateformat :date="Date.now()" format="MM月dd日"></uni-dateformat></view><view class="footer"><view class="box" @click="clickInfo"><uni-icons type="info" size="28"></uni-icons><text class="text">信息</text></view><view class="box" @click="clickScore"><uni-icons type="star" size="28"></uni-icons><text class="text">5分</text></view><view class="box"><uni-icons type="download" size="23"></uni-icons><text class="text">下载</text></view></view></view><uni-popup ref="infoPopup" type="bottom"><view class="infoPopup"><view class="popHeader"><view></view><view class="title">壁纸信息</view><view class="close" @click="infoClose"><uni-icons type="closeempty" size="18" color="#999"></uni-icons></view></view><scroll-view scroll-y><view class="content"><view class="row"><view class="label">壁纸Id:</view><text selectable class="value">1111111111111</text></view><view class="row"><view class="label">分类:</view><text class="value class">明星美女</text></view><view class="row"><view class="label">发布者:</view><text class="value">name</text></view><view class="row"><text class="label">评分:</text><view class='value roteBox'><uni-rate readonly touchable size="16" value="3.5" /><text class="score">5分</text></view></view><view class="row"><text class="label">摘要:</text><view class='value'>zaiyao</view></view><view class="row"><text class="label">标签:</text><view class='value tabs'><view class="tab" v-for="item in 3">aaa</view></view></view><view class="copyright">声明:本图片来用户投稿,非商业使用,用于免费学习交流,如侵犯了您的权益,您可以拷贝壁纸ID举报至平台,邮箱513894357@qq.com,管理将删除侵权壁纸,维护您的权益。</view><view class="safe-area-inset-bottom"></view></view></scroll-view></view></uni-popup><uni-popup ref="scorePopup" type="center"><view class="scorePopup"><view class="popHeader"><view></view><view class="title">壁纸评分</view><view class="close" @click="clickScoreClose"><uni-icons type="closeempty" size="18" color="#999"></uni-icons></view></view><view class="content"><uni-rate v-model="userScore" allowHalf disabled disabled-color="#FFCA3E" /><text class="text">5分</text></view><view class="footer"><button @click="submitScore" :disabled="!userScore || isScore" type="default" size="mini"plain>确认评分</button></view></view></uni-popup></view>
</template><script setup>import {ref} from 'vue';// 点击图片隐层显示图片上的浮框const maskState = ref(true)const maskChange = () => {maskState.value = !maskState.value}// 点击信息,从底部弹出框const infoPopup = ref(null);const clickInfo = () => {infoPopup.value.open();}// 点击关闭底部弹框const infoClose = () => {infoPopup.value.close();}const scorePopup = ref(null)// 评分弹窗const clickScore = () => {scorePopup.value.open();}// 关闭评分弹窗const scoreClose = () => {scorePopup.value.closer();}
</script><style lang="scss" scoped>.preview {width: 100%;height: 100vh;swiper {width: 100%;height: 100%;image {width: 100%;height: 100%;}}.mask {&>view {position: absolute;left: 0;margin: auto;right: 0;color: #fff;width: fit-content; //fit-content代表内容多大自定义宽度}.goBack {}.count {top: 10vh;background: rgba(0, 0, 0, 0.3);font-size: 28rpx;border-radius: 40rpx;padding: 8rpx 28rpx;backdrop-filter: blur(10rpx);}.time {font-size: 140rpx;top: calc(10vh + 80rpx);font-weight: 100;line-height: lem;text-shadow: 0 4rpx rgba(0, 0, 0, 0.3);}.data {font-size: 34rpx;top: calc(10vh + 230rpx);text-shadow: 0 2rpx rgba(0, 0, 0, 0.3);}.footer {background: rgba(255, 255, 255, 0.8);bottom: 10vh;width: 65vw;height: 120rpx;border-radius: 120rpx;color: #000;display: flex;justify-content: space-around;align-items: center;box-shadow: 0 2rpx 0 rgba(0, 0, 0, 0.1);backdrop-filter: blur(20rpx);.box {display: flex;flex-direction: column;align-items: center;justify-content: center;padding: 2rpx 12rpx;.text {font-size: 26rpx;color: $text-font-color-2;}}}}.popHeader {display: flex;justify-content: space-between;align-items: center;.title {color: $text-font-color-2;font-size: 26rpx;}.close {padding: 6rpx;}}.infoPopup {background: #fff;padding: 30rpx;border-radius: 30rpx 30rpx 0 0;overflow: hidden;scroll-view {max-height: 60vh;.content {.row {display: flex;padding: 16rpx 0;font-size: 32rpx;line-height: 1.7em;.label {color: $text-font-color-3;width: 140rpx;text-align: right;font-size: 30rpx;}.value {flex: 1;width: 0;}.roteBox {display: flex;align-items: center;.score {font-size: 26rpx;padding-left: 10rpx;color: $text-font-color-2;}}.tabs {display: flex;flex-wrap: wrap;.tab {border: 1px solid $brand-theme-color;color: $brand-theme-color;font-size: 22rpx;padding: 10rpx 30rpx;border-radius: 40rpx;line-height: 1em;margin: 0 10rpx 10rpx 0;}}.class {color: $brand-theme-color;}}.copyright {font-size: 28rpx;padding: 20rpx;background: #F6F6F6;color: #666;border-radius: 10rpx;margin: 20rpx 0;line-height: 1.6em;}}}}.scorePopup {background: #fff;background: #fff;padding: 30rpx;width: 70vw;border-radius: 30rpx;.content {padding: 30rpx 0;display: flex;justify-content: center;align-items: center;.text {color: #FFCA3E;padding-left: 10rpx;width: 80rpx;line-height: 1em;text-align: right;font-size: 28rpx;}}.footer {padding: 10rpx 0;display: flex;align-items: center;justify-content: center;}}}
</style>

以上就是今天学习的,发现开始有点吃力了,大量的css样式,一点都清楚,也记不住,看来还要多学习css,学海无涯!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源自定义表单系统源码 一键生成表单工具 可自由DIY表单模型+二开

分享一款开源自定义表单系统源码&#xff0c;能够实现99%各行业的报名、预约、加盟申请、调查等应用&#xff0c;而且同时多开创建多个表单&#xff0c;支持自定义各种字段模型&#xff0c;市面上需要的表单模型都含了&#xff0c;随便自定义啦&#xff0c;含完整的代码包和详细…

经典文献阅读之--SMERF(通过标清导航地图增强车道感知和拓扑理解)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&#xff0c;并附带200G…

数组-捡石子小游戏

一、题目描述 二、解题思路 刚开始拿到题目的时候在想是不是需要把所有情况枚举出来&#xff0c;其实思考一下能看出规律&#xff1a; 1.如果有1、2、3颗石子&#xff0c;小牛一定可以赢&#xff1b; 2.再来看4颗石子的时候&#xff0c;小牛A可以拿1~3颗&#xff0c;但是无论小…

探索电商ERP平台的功能架构:实现高效运营的关键

在当今数字化时代&#xff0c;电子商务已经成为了商业运营的主流模式之一。为了应对日益激烈的市场竞争&#xff0c;企业需要借助先进的技术工具来提高运营效率和管理能力。在这篇博客中&#xff0c;我们将深入探讨电商ERP平台的功能架构&#xff0c;揭示其如何成为实现高效运营…

JVM学习-字节码指令集(一)

概述 Java字节码对于虚拟机&#xff0c;好像汇编语言对于计算机&#xff0c;属于基本执行指令Java虚拟机的指令由一个字节长度的&#xff0c;代表某种特定操作含义 的数字(称为操作码Opcode)以及跟随其后的零至多个代表此操作所需参数(操作数&#xff0c;Operands)而构成&…

【Linux】22. 线程控制

Linux线程控制 POSIX线程库 与线程有关的函数构成了一个完整的系列&#xff0c;绝大多数函数的名字都是以“pthread_”打头的 要使用这些函数库&#xff0c;要通过引入头文<pthread.h> 链接这些线程函数库时要使用编译器命令的“-lpthread”选项 线程创建 pthread_cr…

鸿蒙开发接口UI界面:【@ohos.router (页面路由)】

页面路由 说明开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。页面路由需要在页面渲染完…

AI与空间设计的碰撞?

遇到难题不要怕&#xff01;厚德提问大佬答&#xff01; 厚德提问大佬答9 你是否对AI绘画感兴趣却无从下手&#xff1f;是否有很多疑问却苦于没有大佬解答带你飞&#xff1f;从此刻开始这些问题都将迎刃而解&#xff01;你感兴趣的话题&#xff0c;厚德云替你问&#xff0c;你解…

探索python数据可视化的奥秘:打造专业绘图环境

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、搭建专业绘图环境 二、掌握绘图基本原理 三、解锁绘图高级技巧 四、总结与展望 在数据…

比较(一)利用python绘制条形图

比较&#xff08;一&#xff09;利用python绘制条形图 条形图&#xff08;Barplot&#xff09;简介 条形图主要用来比较不同类别间的数据差异&#xff0c;一条轴表示类别&#xff0c;另一条则表示对应的数值度量。 快速绘制 基于seaborn import seaborn as sns import matplo…

banner2.0自定义轮播布局

说明&#xff1a;最近碰到一个需求&#xff0c;让新闻列表实现轮播图的效果&#xff0c;也就是轮播新闻&#xff0c;然后样式必须按照ui设计的样式来弄&#xff0c;之前传统的banner&#xff0c;都是只轮播图片&#xff0c;没想到&#xff0c;这次居然要轮播新闻&#xff0c; 网…

MySQL 重启之后无法写入数据了?

数据库交接后因 persist_only 级别的参数设置引发的故障分析。 作者&#xff1a;不吃芫荽&#xff0c;爱可生华东交付服务部 DBA 成员&#xff0c;主要负责 MySQL 故障处理及相关技术支持。 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系…

CentOS配置DNS

1.打开/etc/resolv.conf文件 sudo vi /etc/resolv.conf2.添加配置 nameserver 114.114.114.1143.保存并关闭文件。 4.为了确保配置生效&#xff0c;重启网络服务或重启系统。例如&#xff1a; 重启网络&#xff1a; sudo systemctl restart network重启系统&#xff1a; …

【渗透测试】|基于dvwa的CSRF初级,中级,高级

一、渗透测试 二、渗透测试过程中遇到的问题和解决 在初级csrf中&#xff0c;想要通过伪造一个404页面&#xff0c;达到修改密码的效果 伪造404页面的html代码如下&#xff1a; <html> <head> </head> <body> <img src"http://192.xx.xx.xx/…

mono3D任务FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection

数据 KITTI 在卡尔斯鲁厄采集的数据&#xff0c;包括雷达&#xff08;64线束激光雷达&#xff09;和摄像头&#xff08;灰色彩色&#xff09;。目标为pvb,场景包括农村、城市、高速。3D目标检测任务包含7481 训练图片和7518 测试图片包含80.256 标注目标。同时带有点云信息。…

C++之类(class)的三种访问修饰符(public、private、protected)----成员变量与函数权限

1、背景介绍 在C中&#xff0c;类&#xff08;class&#xff09;的三种访问修饰符&#xff08;access specifiers&#xff09;用于控制类的成员&#xff08;属性和方法&#xff09;的访问权限。这些修饰符决定了类成员在类的外部是否可以被访问。以下是这三种访问修饰符的详细…

深度学习-语言模型

深度学习-语言模型 统计语言模型神经网络语言模型语言模型的应用序列模型&#xff08;Sequence Model&#xff09;语言模型&#xff08;Language Model&#xff09;序列模型和语言模型的区别 语言模型&#xff08;Language Model&#xff09;是自然语言处理&#xff08;NLP&…

信息安全法规和标准

《全国人民代表大会常务委员会关于维护互联网安全的决定》规定&#xff0c;威胁互联网运行安全的行为&#xff1a;&#xff08;1&#xff09;侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统&#xff0c;&#xff08;2&#xff09;故意制作、传播计算机病毒等破坏性…

Java 中BigDecimal传到前端后精度丢失问题

1.用postman访问接口&#xff0c;返回的小数点精度正常 2.返回到页面里的&#xff0c;小数点丢失 3.解决办法&#xff0c;在字段上加注解 JsonFormat(shape JsonFormat.Shape.STRING) 或者 JsonSerialize(using ToStringSerializer.class) import com.fasterxml.jackson.a…

SpringJDBC

1.前言 Spring JDBC可以帮助开发者节省大量开发工作 自动去处理一些低级细节 比如&#xff1a;异常处理、打开和关闭资源(Connection、PreparedStatement、Statement、ResultSet) 需要下载的jar包&#xff1a; spring-jdbc(普通jar包、源码jar包)由于没有依赖其他的jar包 所以只…