学习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)而构成&…

SaaS 应用之权限管理设计

SaaS 应用中常见的权限设计细节 角色权限模型 角色分层 通常有超级管理员、管理员、普通用户等不同层级的角色。 角色继承 上级角色的权限可以继承给下级角色,形成权限的层级关系。 角色权限矩阵 为每个角色明确定义可执行的操作,如查看、编辑、删除等。 角色动态分配 …

【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′|┛ 嗷~~ 目录 一、搭建专业绘图环境 二、掌握绘图基本原理 三、解锁绘图高级技巧 四、总结与展望 在数据…

Kivy.garden.NavigationDrawer 后续学习

如百词斩部分代码 MRWord\pages\infopage\info.kv <InfoPage>:anim_type: slide_above_simpleid: main_winbox_button_anchor: box_button_anchor.__self__three_labels_box: three_labels_box.__self__box_phonetic: box_phonetic.__self__BoxLayout:BoxLayout:id: ma…

leetcode力扣 300. 最长递增子序列 II

给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1&#…

JavaScript跨界记:从网页到指尖的移动应用开发之旅【含代码示例】

JavaScript跨界记&#xff1a;从网页到指尖的移动应用开发之旅【含代码示例】 基础概念&#xff1a;JavaScript在移动开发的立足之地React Native&#xff1a;原生的诱惑Ionic&#xff1a;Web的浪漫 代码示例&#xff1a;Hello, Mobile World!React Native 示例Ionic 示例 功能…

比较(一)利用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; 网…

HTML、CSS网页入门

HTML&#xff08;超文本标记语言&#xff09;是一种用于创建网页的标记语言。它由一系列的标签组成&#xff0c;这些标签用来描述网页的结构和内容。HTML通过这些标签来标识文本、图片、链接、表格等元素&#xff0c;从而使浏览器能够正确地渲染和显示网页内容。 HTML的基本工…

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

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

C++的算法:模拟算法

模拟算法是一种基于事物运动变化过程的模型,通过计算机程序来模拟实际系统行为或过程的方法。在C++中,模拟算法常用于解决复杂系统或过程的建模与仿真问题。本文将介绍模拟算法的实现思路及实际应用,并通过具体的实例来展示如何在C++中实现模拟算法。 一、模拟算法的实现思…

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/…