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

微信小程序(五十二)开屏页面效果

注释很详细,直接上代码

上一篇

新增内容:
1.使用控件模拟开屏界面
2.倒计时逻辑
3.布局方法
4.TabBar隐藏复现

源码:

components/openPage/openPage.wxml

<view class="openPage-box"><image src="{{imagePath}}" mode="aspectFill"></image><view class="openPage-header"><!-- 跳过按钮 --><view class="openPage-btn" bindtap="skipOpenPage">跳过 {{second}}s</view></view><!-- 创意指导:拼夕夕 --><view class="openPage-gif"><image src="{{gifUrl}}" mode="aspectFill"/></view>
</view>

components/openPage/openPage.wxss

/* 切记:最外面的盒子不能直接用百分之的形式 */
.openPage-box {width: 100vh;height: 100vh;
}.openPage-box>image {width: 100%;height: 100%;
}/* 因为图片已经占据了所有位置,而我们需要让按钮悬浮在图片左上角,
所以需要使用absolute */
.openPage-header {position: absolute; left:40rpx;top: 80rpx;
}.openPage-btn {font-size: 20px;/* 调大点提高用户舒适度,你也不想有被开屏广告支配的感觉吧 */color: white;border: 1px solid white;padding: 2px 5px;border-radius: 12px;
}.openPage-gif{position: absolute;left: 30%;top: 40%;
}.openPage-gif>image{width: 300rpx;height: 300rpx;
}

components/openPage/openPage.js

Component({/*** 组件的属性列表*/properties: {//传入的数据imagePath: {type: String},second: {type: Number}},/*** 组件的初始数据*/data: {gifUrl:'https://wimg.588ku.com/gif620/21/09/23/e14212e58c7e5da94ef8fca48ecd202e.gif',timer: null},lifetimes: {created: function () {},attached: function () {//在JavaScript中,this关键字的指向是动态的,取决于函数的调用方式。//比如普通调用方式里面的this则是这个函数,箭头函数则指的是外面的//如果里面不需要调用该函数这个this对象而只是需要访问外面的this对象则可以使用箭头函数//在某些情况下,为了在回调函数或异步操作中能够访问到外部的this对象并且访问这个函数的this对象,//可以将外部的this对象赋值给一个变量,通常命名为that或selflet that = this;//timer是一个表示定时器的变量,其类型是number//在JavaScript中,setInterval函数会返回一个唯一的定时器标识符,//可以通过这个标识符来清除定时器,即使用clearInterval(timer)来停止定时器的执行const timer = setInterval(function () {//因为这个地方相当于嵌套了一层let nowSecond = --(that.data.second);//时间自减1console.log(nowSecond);if (nowSecond <= 0) {//计时到0则关闭开屏控件clearInterval(timer);//关闭计时器that.hideOpenPage();//隐藏开屏页面}that.setData({//赋值当前秒数(触发视图更新)second: nowSecond,//将计时器变量赋值给页面变量timer,方便在其他函数内关闭该计时器timer: timer});}, 1000);//延时1s}},/*** 组件的方法列表*/methods: {//隐藏开屏控件hideOpenPage: function () {//触发hide的事件,在`index.wxml`内容里面设置了bind:hide="onMyEvent",//则调用`index.js`里面的onMyEvent方法this.triggerEvent("hide");},//跳过开屏页面skipOpenPage: function () {this.hideOpenPage();//先隐藏开屏控件let timer = this.data.timer;//获取计时器变量if (timer) {//避免计时器还没初始化但用户已经点击跳过的情况(感觉只有yyds的李跳跳才能做到了)clearInterval(timer);//关闭计时器}}}
})

components/openPage/openPage.json

{"component": true,"usingComponents": {}
}

index.wxml

<openPage wx:if="{{openPageFlag}}" imagePath="{{url}}" second="{{5}}" bind:hide="onMyEvent"></openPage><!-- 图个方便咱样式全写行内了(毕竟这也不是重点) --><view style=" border-radius: 30rpx; "><view style="padding:160rpx 0 0 0;display: flex;flex-direction: column; align-items: center;"><view><image src="{{userInfo.avatar}}" mode="aspectFill" style="width: 100rpx ;height: 100rpx; border-radius: 50%;" /></view><view style="margin-bottom: 20rpx;"><text style="color: pink;">{{userInfo.nickName}}</text></view></view></view>

index.wxss

page{background-image: url(https://pic3.zhimg.com/v2-a76bafdecdacebcc89b5d4f351a53e6a_r.jpg?source=1940ef5c);background-size: 100% auto;background-repeat: no-repeat;
}

index.js

Page({data: {userInfo:{//这里是默认的用户头像昵称信息avatar:'https://profile-avatar.csdnimg.cn/06d540e9389b45649e01ca3798fdb924_m0_73756108.jpg',//csdn整来的头像链接😎😎😎nickName:'眨眼睛'},//开屏控件是否存在标记openPageFlag: true,//开屏广告图片内容url:'https://ts1.cn.mm.bing.net/th/id/R-C.a4616e92a020b344cec039516ac755d3?rik=1pgZKObA0CxALA&riu=http%3a%2f%2fsjbz.fd.zol-img.com.cn%2ft_s1080x1920c%2fg5%2fM00%2f00%2f02%2fChMkJ1fJUwuIUssCAA39sthJrGMAAU9nwNNNewADf3K734.jpg&ehk=oX398mB4NzTaBxvWpwJIR3bS7NzghbGRvY4qp7jJPuE%3d&risl=&pid=ImgRaw&r=0'},//第一次加载这个页面触发一次,也就是开屏内容展现的时候onLoad: function () {//在有TabBar的情况下默认是不会隐藏的,所以我们手动隐藏一下wx.hideTabBar();},//当该控件隐藏时触发onMyEvent: function () {//打印关闭console.log("开屏控件关闭!!!");this.setData({//将开屏控件的存在标记设为否openPageFlag: false});//显示TabBar(前面隐藏了)wx.showTabBar();}
})

index.json

{"usingComponents": {"openPage": "/components/openPage/openPage"},"navigationStyle": "custom"
}

效果演示:

在这里插入图片描述

相关文章:

微信小程序(五十二)开屏页面效果

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.使用控件模拟开屏界面 2.倒计时逻辑 3.布局方法 4.TabBar隐藏复现 源码&#xff1a; components/openPage/openPage.wxml <view class"openPage-box"><image src"{{imagePath}}"…...

2024年k8s最新版本使用教程

2024年k8s最新版本使用教程 3. YAML语言入门3.1 基本语法规则3.2 支持的数据结构3.3 其他语法 4 资源管理4.1 k8s资源查询4.2 资源操作命令4.3 资源操作方式4.3.1 命令行方式4.3.2 YAML文件方式 5 Namespace5.1 查看命名空间5.2 创建命名空间5.3 删除命名空间5.4 命名空间资源限…...

IDEA管理Git + Gitee 常用操作

文章目录 IDEA管理Git Gitee 常用操作1.Gitee创建代码仓库1.创建仓库1.点击新建仓库2.完成仓库信息填写3.创建成功4.管理菜单可以修改这个项目的设置 2.设置SSH公钥免密登录基本介绍1.找到.ssh目录2.执行指令 ssh-keygen3.将公钥信息添加到码云账户1.点击设置2.ssh公钥3.复制.…...

HBase安装,配置,启动,检查

目录: 一、HBase安装&#xff0c;配置 1、下载HBase安装包 2、解压&#xff0c;配置环境变量并激活 3、hbase 配置 4、将hadoop和zookeeper的配置文件创建软连接放在hbase配置目录 5、配置 regionserver 二、HBase启动与关闭&#xff0c;安装检验 1、启动关闭hbase的命令 2、 检…...

当金蝶遇上BI,马上就能看到数据可视化效果

最近整理咨询内容时发现&#xff0c;很多企业用户在咨询时都会问是否有行业案例&#xff0c;究其原因时他们没用过BI数据分析&#xff0c;不知道BI可以做什么&#xff0c;能做到什么地步。其实&#xff0c;要知道这些东西还不简单&#xff0c;只需要注册奥威BI软件&#xff0c;…...

计算机网络:网络层知识点汇总

文章目录 一、网络功能概述二、SDN基本概念三、路由算法与路由协议概述四、IP数据报格式五、IP数据报分片六、IPv4地址七、网络地址转换NAT八、子网划分和子网掩码九、无分类编址CIDR十、ARP协议十一、DHCP协议十二、ICMP协议十三、IPv6十四、RIP协议与距离向量算法十五、OSPF协…...

uniapp:小程序数字键盘功能样式实现

代码如下&#xff1a; <template><view><view><view class"money-input"><view class"input-container" click"toggleBox"><view class"input-wrapper"><view class"input-iconone"…...

python处理csv文件

1.使用 csv_writer.writerow # 导入CSV安装包 import csv# 1. 创建文件对象 f open(文件名.csv,a,encodingutf-8)# 2. 基于文件对象构建 csv写入对象 csv_writer csv.writer(f)# 3. 构建列表头 csv_writer.writerow(["问题","答案"])list_name[] # 4. 写…...

多核多cluster多系统之间缓存一致性概述

目录 1.思考和质疑2.怎样去维护多核多系统缓存的一致性2.1多核缓存一致性2.2多Master之间的缓存一致性2.3dynamIQ架构同一个core中的L1和L2 cache 3.MESI协议的介绍4.ACE维护的缓存一致性5.软件定义的缓存和替换策略6.动图示例 本文转自 周贺贺&#xff0c;baron&#xff0c;代…...

力扣爆刷第91天之hot100五连刷41-45

力扣爆刷第91天之hot100五连刷41-45 文章目录 力扣爆刷第91天之hot100五连刷41-45一、102. 二叉树的层序遍历二、108. 将有序数组转换为二叉搜索树三、98. 验证二叉搜索树四、230. 二叉搜索树中第K小的元素五、199. 二叉树的右视图 一、102. 二叉树的层序遍历 题目链接&#x…...

STM32day2

1.思维导图 个人暂时的学后感&#xff0c;不一定对&#xff0c;没什么东西&#xff0c;为做项目奔波中。。。1.使用ADC采样光敏电阻数值&#xff0c;如何根据这个数值调节LED灯亮度。 while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */adc_val HAL_ADC_GetValue(&a…...

查询IP地址保障电商平台安全

随着电子商务的快速发展&#xff0c;网购已经成为人们日常生活中不可或缺的一部分。然而&#xff0c;网络交易安全一直是人们关注的焦点之一&#xff0c;尤其是在面对日益频发的网络诈骗和欺诈行为时。为了提高网购平台交易的安全性&#xff0c;一种有效的方法是通过查询IP地址…...

使用pytorch实现线性回归(很基础模型搭建详解)

使用pytorch实现线性回归 步骤&#xff1a; 1.prepare dataset 2.design model using Class 目的是为了前向传播forward&#xff0c;即计算y hat&#xff08;预测值&#xff09; 3.Construct loss and optimizer (using pytorch API) 其中计算loss是为了进行反向传播&#xff0…...

【力扣100】【好题】322.零钱兑换 || 01背包完全背包

添加链接描述 思路&#xff1a; dp[j]数组表示的是在金额达到 j 的时候所需要的最小硬币数金额&#xff1a;背包容量&#xff0c;每个硬币的个数都为1&#xff1a;背包中物品的价值&#xff0c;硬币面额&#xff1a;物品重量dp[j]min(dp[j],dp[j-coin]1) class Solution:def …...

工单管理系统建设方案

1.1 系统概述 1.1.1 需求描述 1.1.2 需求分析 1.1.3 重难点分析 1.1.4 重难点解决措施 1.2 系统架构设计 1.2.1 系统架构图 1.2.2 关键技术 1.3 系统功能设计 1.3.1 工单创建 1.3.2 工单管理 1.3.3 工单处理 1.3.4 工单催办 1.3.5 工单归档 1.3.6 工单统计 软件项目全套资料获取…...

什么是农业四情监测设备?

【TH-Q2】智慧农业四情监测设备是一种高科技的农田监测工具&#xff0c;旨在实时监测和管理农田中的土壤墒情、作物生长、病虫害以及气象条件。具体来说&#xff0c;它主要包括以下组成部分&#xff1a; 气象站&#xff1a;用于监测气温、湿度、风速等气象数据&#xff0c;为农…...

Java面试题:请解释Java并发工具包中的主要组件及其应用场景,请描述一个使用Java并发框架(如Fork/Join框架)解决实际问题的编程实操问题

文章标题&#xff1a;《Java内存模型深入解析与多线程并发工具类应用》 引言&#xff1a; 在Java的世界里&#xff0c;掌握内存模型和多线程并发是高级开发者的必备技能。Java内存模型&#xff08;JMM&#xff09;和多线程并发工具包为开发者提供了强大的能力&#xff0c;同时…...

boot应用打包

1.创建项目 2.编写 3.native构建 报错&#xff1a; [WARNING] native:build goal is deprecated. Use native:compile-no-fork instead. [INFO] Found GraalVM installation from GRAALVM_HOME variable. [INFO] Executing: S:\Coding\graalvm-jdk-17_windows-x64_bin\graalv…...

探索数据可视化:Matplotlib 多图布局

多图布局 子视图 import numpy as np import matplotlib.pyplot as pltx np.linspace(0,2*np.pi)plt.figure(figsize(9,6))# 创建子视图 # subplot(2,1,1)表示将当前图形分割成 2 行 1 列的子图网格&#xff0c;并在第 1 个子图位置绘制图形 ax plt.subplot(2,1,1) ax.plot…...

springboot262基于spring boot的小型诊疗预约平台的设计与开发

小型诊疗预约平台 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本小型诊疗预约平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

《信号与系统》第 6 章 信号与系统的时域和频域特性

目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...