壁纸小程序Vu3(预览页面:弹窗)

news2024/11/17 10:38:53

1.展示跳转后的分类列表图片

classlist.vue

 

<template>
  <view class="classlist">
      <view class="content">
            <navigator class="item" v-for="item in 10">
                <image src="../../common/images/64.png" mode="aspectFill"></image>
            </navigator>
      </view>
  </view>
</template>

<script setup>
 
</script>

<style lang="scss" scoped>
  
.classlist{
  .content{
    //网格布局
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap:5rpx;
    padding: 5rpx;
    .item{
      height: 440rpx;
      
      image{
        width: 100%;
        height: 100%;
        display: block;
      }
    }
    
  }
}
  
</style>

2.预览页面(preview.vue)

1)基础布局

<template>
  <view class="preview">
    
     <swiper circular>
        <swiper-item v-for="item in 4">
            <image @click="maskChange" src="../../static/images/2.jpg" mode="aspectFill"></image>
        </swiper-item>
        <swiper-item>
            <image src="../../static/images/1.jpeg" mode="aspectFill"></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="new Date()" format="hh:mm"></uni-dateformat>
          </view>
          <view class="date">
              <uni-dateformat :date="new Date()" format="MM月dd日"></uni-dateformat>
          </view>
          
          <view class="footer">
              <view class="box">
                  <uni-icons type="info" size="28"></uni-icons>
                  <view class="text">信息</view>
              </view>
              
              <view class="box">
                  <uni-icons type="star" size="28"></uni-icons>
                  <view class="text">5分</view>
              </view>
              
              <view class="box">
                  <uni-icons type="download" size="23"></uni-icons>
                  <view class="text">下载</view>
              </view>
          </view>
          
      </view>
      
      

  </view>
</template>

<script setup>
import { ref } from 'vue';
//遮盖层
const maskState = ref(false)
const maskChange = ()=>{
   maskState.value = !maskState.value
}

  
</script>

<style lang="scss" > 

.preview{
  width: 100%;
    height: 100vh;
    swiper{
      width: 100%;
      height: 100%;
      image{
        width: 100%;
        height: 100%;
      }
    }
    .mask{
      //&>view:紧邻的子元素
      //公用的
      &>view{
        position: absolute;
        left: 0;
        margin: auto;
        color: #fff;
        right: 0;
        //内容多大就有多宽=>自动扩宽
        width: fit-content;
      }
      .goBack{
        
      }
      .count{
        position: absolute;
        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: 1em;
        //文字阴影
        text-shadow: 0 4rpx rgba(0, 0, 0, 0.3);
      }
      .date{
        font-size: 34rpx;
        top: calc(10vh + 240rpx);
        text-shadow: 0 4rpx 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;
          }
        }
      }
    }
    
    
}

</style>

显示时间的组件

<view class="time">
              <uni-dateformat :date="new Date()" format="hh:mm"></uni-dateformat>
          </view>

 .mask{
      //&>view:紧邻的子元素
      //公用的
      &>view{
        position: absolute;
        left: 0;
        margin: auto;
        color: #fff;
        right: 0;
        //内容多大就有多宽=>自动扩宽
        width: fit-content;
      }

top: calc(10vh + 240rpx);是一种CSS样式声明,用于设置元素的垂直位置。

3.弹窗的设置

1).壁纸信息弹窗

<!-- 弹框 -->
      <uni-popup ref="infoPopup" type="bottom">
          <view class="infoPopup">
              <view class="popHeader">
                  <view></view>
                  <view class="title">壁纸信息</view>
                  <view class="close" @click="clickInfoClose">
                    <uni-icons type="closeempty" size="18" color="#999" ></uni-icons>
                  </view>
              </view>
              <!-- scroll-view限制最大区域 -->
              <scroll-view scroll-y>
                  <view class="content">
                      <view class="row" >
                        <view class="label">壁纸ID: </view>
                        <text selectable class="value">112124124sfgd</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">君泺</text>
                  </view>
                  <view class="row">
                    <text class="label">评分:</text>
                    <view class='value roteBox' >
                      <uni-rate readonly touchable value="3.5" size="16"/>
                      <text class="score">5分</text>
                    </view>
                  </view>
                  <view class="row">
                    <text class="label">摘要:</text>
                    <view class='value'>
                      摘要文字内容填充部分,摘要文字内容填充部分,摘要文字内容填充部分,摘要文字内容填充部分。
                    </view>
                  </view>
                  <view class="row">
                    <text class="label">标签:</text>
                    <view class='value tabs'>
                      <view class="tab" v-for="item in 3">标签名</view>
                    </view>
                  </view>	   
                  <view class="copyright">声明:本图片来用户投稿,非商业使用,用于免费学习交流,
                  如侵犯了您的权益,您可以拷贝壁纸ID举报至平台,邮箱513894357@qq.com,管理将删除侵权壁纸,维护您的权益。</view>
                  </view>
              </scroll-view>
          </view>
            
      </uni-popup>

 


<script setup>
import { ref } from 'vue';
//遮盖层
const maskState = ref(true)
const infoPopup = ref(null)

//点击info弹窗
const clickInfo = ()=>{
    infoPopup.value.open();
}

//点击关闭信息弹窗
const clickInfoClose = ()=>{
  infoPopup.value.close();
}

const maskChange = ()=>{
   maskState.value = !maskState.value
}
</script>
 

2)评分弹窗

 preview.vue

  <!-- :is-mask-click="false":点击×才能进行关闭,点击空白不关闭 -->
      <uni-popup ref="scorePopup" :is-mask-click="false">
        <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">
              <!-- allowHalf:0.5分 -->
                <uni-rate v-model="userScore" allowHalf></uni-rate>
                <text class="text">{{userScore}}分</text>
            </view>
          
            <view class="footer">
              <!-- :disabled="!userScore" 只有进行评分时才生效 -->
              <button @click="submitScore"  :disabled="!userScore" type="default"    size="mini" plain>确认评分</button>
            </view>
          
        </view>
      </uni-popup>


<script setup>
import { ref } from 'vue';
//遮盖层
const maskState = ref(true)
const infoPopup = ref(null)
const scorePopup = ref(null)
const userScore = ref(0)
//点击info弹窗
const clickInfo = ()=>{
    infoPopup.value.open();
}
//点击关闭信息弹窗
const clickInfoClose = ()=>{
  infoPopup.value.close();
}
//评分弹窗
const clickScore = () =>{
  scorePopup.value.open();

}
//关闭
const clickScoreClose =  ()=>{
  scorePopup.value.close();

}
const maskChange = ()=>{
   maskState.value = !maskState.value
}

//确认评分
const submitScore = () =>{
  console.log("评分了");
}
</script>

 

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

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

相关文章

DFS(排列数字、飞机降落、选数、自然数的拆分)

注&#xff1a;1.首先要知道退出条件 2.还原现场 典型&#xff1a;全排列 题目1&#xff1a; 代码&#xff1a; #include<bits/stdc.h> using namespace std; int a[1005],p[1005],v[1005]; int n; void dfs(int x) {//此次dfs结束条件,即搜到底 if(xn1){for(int i1;i&…

AcWing刷题-计算系数

计算系数 代码&#xff1a; MOD 10007 a, b, k, n, m [int(x) for x in input().split()]def pow(a, n):r 1 % MODwhile n:if n & 1: r r * a % MODa a * a % MODn >> 1return rdef C(n, m):r 1 % MODfor i, j in zip(range(n, -1, -1), range(1, m 1)):r …

CLR学习

视频链接&#xff1a;《CLR十分钟》系列之CLR运行模型_哔哩哔哩_bilibili 什么是 CLR 公共语言运行时&#xff08;Common Language Runtime CLR&#xff09; 是一个可有多种编程语言使用的 运行时&#xff0c;CLR 的核心功能&#xff08;比如 内存管理&#xff0c;程序集加载…

解锁网络安全新境界:雷池WAF社区版让网站防护变得轻而易举!

网站运营者的救星&#xff1a;雷池WAF社区版 ️ 嘿朋友们&#xff01;今天我超级激动要跟你们分享一个神器——雷池WAF社区版。这个宝贝对我们这帮网站运营者来说&#xff0c;简直就是保护伞&#xff01; 智能语义分析技术&#xff1a;超级侦探上线 先说说为啥我这么稀饭它。雷…

Qt环形颜色选择控件, 圆环颜色选择器

参考文章Qt编写自定义控件&#xff1a;环形颜色选择控件_qconicalgradient圆环渐变-CSDN博客 感谢作责提供的方法&#xff0c;下面程序的基础思路同参考文章。 为了更方便使用&#xff0c;这个选择器是基于64色表的&#xff0c;会显示选中的索引和色值。颜色选择时计算方式也…

Vite源码学习--调试源码

简介 当我们开始构建越来越大型的应用时&#xff0c;需要处理的 JavaScript 代码量也呈指数级增长。包含数千个模块的大型项目相当普遍。基于 JavaScript 开发的工具就会开始遇到性能瓶颈&#xff1a;通常需要很长时间&#xff08;甚至是几分钟&#xff01;&#xff09;才能启…

接口日志表结构

表&#xff1a;ZTALL_IFLOG MANDT MANDT CLNT 3 0 0 客户端 UUID SYSUUID_C32 CHAR 32 0 0 16-byte UID in 32 chars (hexadecimal) IFSNR ZE_IFSNR CHAR 30 0 0 接口编号(系统ID流水号) FUNCNAME RS38L_FNAM CHAR 30 0 0 功能模块的名称 STATUS BAPI_MTYPE CHAR 1 0 0 消息类…

【计算机毕业设计】电影购票系统——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

linux--进程创建

执行了3次ps -f ,ps -f的父进程的ID(PPID)都是一样的,即bash. 实际上Linux上这个bash就是不断的复制自身,然后把复制出来的用exec替换成想要执行的程序(比如ps); 运行ps,发现ps是bash的一个子进程;原因就是bash把自己复制一份,然后替换成ps; 替换,这里就体现了写时拷贝的意义,…

学习vue3第十四节 Teleport 内置组件介绍

<Teleport></Teleport> 作用目的&#xff1a; 用于将指定的组件或者元素传送到指定的位置&#xff1b; 通常是自定义的全局通用弹窗&#xff0c;绑定到 body 上&#xff0c;而不是在当前元素上面&#xff1b; 使用方法&#xff1a; 接收两个参数 to: 要将目标传…

Ceph学习 - 1.存储知识

文章目录 1.存储基础1.1 基础知识1.1.1 存储基础1.1.2 存储使用 1.2 文件系统1.2.1 简介1.2.2 数据存储1.2.3 存储应用的基本方式1.2.4 文件存储 1.3 小结 1.存储基础 学习目标&#xff1a;这一节&#xff0c;我们从基础知识、文件系统、小节三个方面来学习。 1.1 基础知识 1.…

Qt中的网络通信

C没有封装专门的网络套接字的类&#xff0c;因此C只能调用C对应的API&#xff0c;而在Linux和Windows环境下的API都是不一样的 Qt作为一个C框架提供了相关封装好的套接字通信类 在Qt中需要用到两个类&#xff0c;两个类都属于network且都是属于IO操作&#xff0c;只不过这两个类…

第十四届蓝桥杯C/C++大学B组题解(一)

1、日期统计 #include <bits/stdc.h> using namespace std; int main() {int array[100] {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6,…

Golang | Leetcode Golang题解之第8题字符串转换整数atoi

题目&#xff1a; 题解&#xff1a; func myAtoi(s string) int {abs, sign, i, n : 0, 1, 0, len(s)//丢弃无用的前导空格for i < n && s[i] {i}//标记正负号if i < n {if s[i] - {sign -1i} else if s[i] {sign 1i}}for i < n && s[i] >…

DFS序列

什么是DFS序 DFS序是指对一棵树进行DFS时&#xff0c;每个节点被访问到的顺序。DFS序分成两个部分&#xff1a;进入该节点的顺序和退出该节点的顺序。 如何求DFS序 对于DFS中当前节点 1&#xff1a;计数 2&#xff1a;进入当前节点的顺序等于当前计数 3&#xff1a;想所有…

阿里云可观测 2024 年 3 月产品动态

本月可观测热文回顾 文章一览&#xff1a; 全新架构&#xff01;日志服务 SLS 自研免登录方案发布 AIOps 智能运维&#xff1a;有没有比专家经验更优雅的错/慢调用分析工具&#xff1f; 一文看懂如何做好 SQL 质量监控 使用 SPL 高效实现 Flink SLS Connector 下推 功能快…

pandas用法-详解教程

pandas用法-详解教程 一、生成数据表二、数据表信息查看三、数据表清洗四、数据预处理五、数据提取六、数据筛选七、数据汇总八、数据统计九、数据输出 一、生成数据表 1、首先导入pandas库&#xff0c;一般都会用到numpy库&#xff0c;所以我们先导入备用&#xff1a; impor…

深度学习理论基础(六)Transformer多头注意力机制

目录 一、自定义多头注意力机制1. 缩放点积注意力&#xff08;Scaled Dot-Product Attention&#xff09;● 计算公式● 原理 2. 多头注意力机制框图● 具体代码 二、pytorch中的子注意力机制模块 深度学习中的注意力机制&#xff08;Attention Mechanism&#xff09;是一种模仿…

docker基础学习指令

文章目录 [toc] docker基础常用指令一、docker 基础命令二、docker 镜像命令1. docker images2. docker search3. docker pull4. docker system df5. docker rmi1. Commit 命令 三、 docker 容器命令1. docker run2. docker logs3. docker top4. docker inspect5. docker cp6. …

Mybatis报错:Unsupported conversion from LONG to java.sql.Timestamp

Mybatis在封装结果集的时候&#xff0c;如果方法返回的是对象&#xff0c;则会去调用这个对象的无参构造方法。 如果实体类标注了Builder注解&#xff0c;则此注解会把默认的构造方法全部改成私有的&#xff0c;则Mybatis在通过无参构造方法反射创建对象时&#xff0c;就会找不…