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

微信小程序开发——自定义堆叠图

先看效果图

点击第一张图片实现折叠,再次点击实现展开

思路

图片容器绑定点击事件获取当前图片索引,触发onTap函数,根据索引判断当前点击的图片是否为第一张,并根据当前的折叠状态来更新每张图片的位置,注意图片向上移动的距离与索引成正相关,而且始终是索引越小层级越大。

代码

<!-- WXML -->
<view class="bigFoldBox"><view class='foldBox' style='--distance: {{isFold[index]}}px; --z-index: {{zIndex[index]}};' wx:for="{{images0}}" wx:key="index" bindtap='onTap' data-index="{{index}}"><image src="{{item.src}}" class='image' mode="aspectFit" ></image></view>
</view>
/* WXSS */
.bigFoldBox{width: 100vw;border-top: calc(1 / 360 * 750rpx) black solid;
}
.image{width: calc(360 / 360 * 750rpx);height: calc(125 / 360 * 750rpx);
}
.foldBox {position: relative;transform: translateY(var(--distance));z-index: var(--z-index);transition: transform 0.5s ease;
}
// JS
data: {images0: [{src: "https://i0.hdslb.com/bfs/new_dyn/f751c91ef0cdbe8c42bf9c3e088b5d46402122872.jpg@!web-comment-note.avif"},{src: "https://i0.hdslb.com/bfs/new_dyn/f751c91ef0cdbe8c42bf9c3e088b5d46402122872.jpg@!web-comment-note.avif"},{src: "https://i0.hdslb.com/bfs/new_dyn/f751c91ef0cdbe8c42bf9c3e088b5d46402122872.jpg@!web-comment-note.avif"},{src: "https://i0.hdslb.com/bfs/new_dyn/f751c91ef0cdbe8c42bf9c3e088b5d46402122872.jpg@!web-comment-note.avif"},{src: "https://i0.hdslb.com/bfs/new_dyn/f751c91ef0cdbe8c42bf9c3e088b5d46402122872.jpg@!web-comment-note.avif"}],isFold: [],zIndex: [], isFolded: true
},
// 点击图片获取索引
onTap(e) {let index = e.currentTarget.dataset.index;if (index === 0) {let newIsFold = this.data.isFolded ? this.data.isFold.map((value, i) => 0) : this.data.isFold.map((value, i) => -i * 100);this.setData({ isFold: newIsFold,// zIndex: newZIndex, // 不需要更改层级状态isFolded: !this.data.isFolded,  // 更新折叠状态});}
}
onLoad: function() {// 在页面加载时,根据 images0 数组的长度设置 isFold 和 zIndex 数组let isFold = new Array(this.data.images1.length).fill(0).map((v, i) => -i * 105);let zIndex = new Array(this.data.images1.length).fill(0).map((v, i) =>  this.data.images1.length - i);this.setData({ isFold: isFold, zIndex: zIndex });
},

相关文章:

微信小程序开发——自定义堆叠图

先看效果图 点击第一张图片实现折叠&#xff0c;再次点击实现展开 思路 图片容器绑定点击事件获取当前图片索引&#xff0c;触发onTap函数&#xff0c;根据索引判断当前点击的图片是否为第一张&#xff0c;并根据当前的折叠状态来更新每张图片的位置&#xff0c;注意图片向上…...

国庆day5

QT实现TCP服务器客户端搭建的代码 ser.h #ifndef SER_H #define SER_H#include <QWidget> #include<QTcpServer> #include<QTcpSocket> #include<QMessageBox> #include<QList> QT_BEGIN_NAMESPACE namespace Ui { class …...

经典算法----迷宫问题(找出所有路径)

目录 前言 问题描述 算法思路 定义方向 回溯算法 代码实现 前言 前面我发布了一篇关于迷宫问题的解决方法&#xff0c;是通过栈的方式来解决这个问题的&#xff08;链接&#xff1a;经典算法-----迷宫问题&#xff08;栈的应用&#xff09;-CSDN博客&#xff09;&#xff…...

macOS下 /etc/hosts 文件权限问题修复方案

文章目录 前言解决方案权限验证 macOS下 etc/hosts 文件权限问题修复 前言 当在 macOS 上使用 vi编辑 /etc/hosts 文件时发现出现 Permission Denied 的提示,就算在前面加上 sudo 也照样出现一样的提示,解决方案如下; 解决方案 可以尝试使用如下命令尝试解除锁定; sudo chf…...

【星海出品】ansible入门(二) playbook

核心是管理配置进行批量节点部署。 执行其中的一些列tasks。 playbook由YAML语言编写。 YAML的格式如下&#xff1a; 文件名应该以 .yml 结尾 1.文件的第一行应该以“—”&#xff08;三个连字符&#xff09;开始&#xff0c;表明YAML文件的开始。 2.在同一行中&#xff0c;#之…...

Spring Boot对账号密码进行加密储存

未来避免明文硬编码&#xff0c;我们需要对密码进行加密保存&#xff0c;例如账号密码 方法 在Spring Boot中&#xff0c;可以使用Jasypt&#xff08;Java Simplified Encryption&#xff09;库来对敏感信息进行加密和解密。Jasypt提供了一种简单的方式来在应用程序中使用加密…...

总结js中常见的层次选择器

js中的层次选择器可以用于选择和操作DOM树中的元素&#xff0c;根据元素的层级关系进行选择。以下是js中常见的层次选择器&#xff1a; 1. getElementById&#xff1a;使用元素的ID属性进行选择。通过给元素设置唯一的ID属性&#xff0c;可以使用getElementById方法选择该元素…...

阿里云ECS服务器上启动的portainer无法访问的问题

如下图&#xff0c;在阿里云ECS服务器上安装并启动了portainer&#xff0c;但是在自己电脑上访问不了远程的portainer。 最后发现是要在网络安全组里开放9000端口号&#xff0c;具体操作如下&#xff1a; 在云服务器管理控制台点击左侧菜单中的网络与安全-安全组&#xff0c;然…...

JavaScript系列从入门到精通系列第十八篇:JavaScript中的函数作用域

文章目录 前言 一&#xff1a;函数作用域 前言 我们刚才提到了&#xff0c;在<Script>标签当中进行定义的变量、对象、函数对象都属于全局作用域&#xff0c;全局作用域在页面打开的时候生效在页面关闭的时候失效。 一&#xff1a;函数作用域 调用函数时创建函数作用域…...

开环模块化多电平换流器仿真(MMC)N=6(Simulink仿真)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

[C]嵌入式中变量存储方案

#include<stdio.h>#define uint8_t unsigned char #define uint16_t unsigned short #define uint24_t unsigned int #define uint32_t unsigned int #define uint64_t unsigned long long//用户自定义变量名字&#xff0c;用于存储 typedef enum {first_run 0,//…...

热迁移中VirtIO-PCI设备的配置空间处理

文章目录 问题现象定位过程日志分析源端目的端 原理分析基本原理上下文分析复现分析patch分析 总结解决方案 问题现象 集群升级虚拟化组件版本&#xff0c;升级前存量运行并挂载了virtio磁盘的虚拟机集群内热迁移到升级后的节点失败&#xff0c;QEMU报错如下&#xff1a; 202…...

模拟滤波器的基础知识和设计

信号处理工作中滤波器的应用是非常广泛的&#xff0c;可以分成模拟滤波器和数字滤波器两种&#xff0c;数字滤波器主要包括两种&#xff0c;IIR和FIR&#xff0c;这两种滤波器后面统一说&#xff0c;今天先来说一说模拟滤波器&#xff08;主要是我先用Python实现了Matlab书里面…...

机器学习基础-Pandas学习笔记

Pandas Python的数据分析库&#xff0c;与Numpy配合使用&#xff0c;可以从常见的格式如CSV、JSON等中读取数据。可以进行数据清洗、数据加工工作。数据结构Series&#xff0c;Pandas.Series(data,index,dtype,name,copy) data类型是Numpy的ndarray类型&#xff0c;index指定下…...

【GIT版本控制】--协作流程

一、Fork与Pull Request Git协作流程中的关键概念包括Fork和Pull Request&#xff0c;它们允许多人在项目中协作并贡献代码。以下是关于Fork和Pull Request的简要总结&#xff1a; 1. Fork&#xff1a; Fork是指复制一个Git仓库&#xff0c;通常是一个开源项目的仓库&#xf…...

简析Cookie、Session、Token

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;https://zhangxiaofan.blog.csdn.net/article/details/133498756 文章目录 简析Cookie、Session、Token什么是 Cookie &#xff1f;什么是 Session &#xff1f;Cookie 和 Session 到底是…...

加速attention计算的工业标准:flash attention 1和2算法的原理及实现

transformers目前大火&#xff0c;但是对于长序列来说&#xff0c;计算很慢&#xff0c;而且很耗费显存。对于transformer中的self attention计算来说&#xff0c;在时间复杂度上&#xff0c;对于每个位置&#xff0c;模型需要计算它与所有其他位置的相关性&#xff0c;这样的计…...

小程序获取用户手机号

在小程序中获取用户手机号需要以下步骤&#xff1a; 首先需要授权用户手机号&#xff0c;即在小程序中调用 wx.login() 方法获取用户的登录凭证&#xff0c;在回调函数中调用 wx.getUserInfo() 方法获取用户的个人信息&#xff0c;并且设置 withCredentials 参数为 true。 在获…...

Zama的fhEVM:基于全同态加密实现的隐私智能合约

1. 引言 Zama的fhEVM定位为&#xff1a; 基于全同态加密实现的隐私智能合约 解决方案 开源代码见&#xff1a; https://github.com/zama-ai/fhevm&#xff08;TypeScript Solidity&#xff09; Zama的fhEVM协议中主要包含&#xff1a; https://github.com/zama-ai/tfhe-…...

Mac M1安装ROS1或ROS2

1.首先进入Anaconda官网&#xff0c;安装Anaconda 2.创建、激活并配置环境 #创建环境 conda create -n ROS #激活环境 conda activate ROS #配置环境 conda config --add channels conda-forge conda config --add channels robostack conda config --set channel_priority st…...

阿里云盘Refresh Token获取终极指南:3分钟搞定扫码授权全流程

阿里云盘Refresh Token获取终极指南&#xff1a;3分钟搞定扫码授权全流程 【免费下载链接】aliyundriver-refresh-token QR Code扫码获取阿里云盘refresh token For Web 项目地址: https://gitcode.com/gh_mirrors/al/aliyundriver-refresh-token 阿里云盘refresh token…...

MGeo门址解析应用场景:房产中介平台房源地址自动标准化与GIS热力图生成

MGeo门址解析应用场景&#xff1a;房产中介平台房源地址自动标准化与GIS热力图生成 1. 引言&#xff1a;房产中介的地址之痛 想象一下&#xff0c;你是一家房产中介公司的运营人员。每天&#xff0c;你的同事和合作方会通过各种渠道收集到成百上千条房源信息&#xff1a;有的…...

GraphRAG:当 RAG 遇上知识图谱,信息检索从此不一样了

假设你把公司过去三年的所有周报、会议纪要、项目文档丢进一个 RAG 系统&#xff0c;然后问它&#xff1a;“过去一年里&#xff0c;研发团队和产品团队之间的主要分歧有哪些&#xff1f;”——大概率你会得到几段看起来相关的文字片段&#xff0c;但拼不出一个完整的答案。 这…...

Gemini提示词反推教程!“图生图”来了

看到一张心仪的室内设计图&#xff0c;却不知道如何描述它的高级美&#xff1f; 其实&#xff0c;每一张令人惊艳的图片背后&#xff0c;都有一套隐藏的代码。今天&#xff0c;我们要分享一套“保姆级”教程&#xff1a;利用 MetaChat 平台上的 Gemini 3.1 Pro 充当你的私人审美…...

s2-pro语音合成教程:参考音频采样率/格式/信噪比最佳实践

s2-pro语音合成教程&#xff1a;参考音频采样率/格式/信噪比最佳实践 1. 认识s2-pro语音合成工具 s2-pro是Fish Audio开源的专业级语音合成模型镜像&#xff0c;它不仅能将文本转换为自然流畅的语音&#xff0c;还能通过参考音频来复用特定的音色。这意味着你可以上传一段样本…...

Cartool实战:手把手教你完成静息态EEG微状态分析的组水平聚类与模板匹配

Cartool实战&#xff1a;静息态EEG微状态分析全流程解析与避坑指南 在认知神经科学研究中&#xff0c;静息态EEG微状态分析正成为探索大脑动态功能网络的重要工具。不同于传统频域分析&#xff0c;微状态分析通过捕捉毫秒级地形图变化&#xff0c;揭示大脑信息处理的离散状态转…...

【电赛实战利器】基于STM32F4与协方差修正的全数字锁相放大器设计与实测

1. 为什么你需要一个全数字锁相放大器&#xff1f; 在电子设计竞赛或者精密测量项目中&#xff0c;微弱信号检测总是让人头疼。想象一下&#xff0c;你要从一堆嘈杂的噪音中找出一个微弱的正弦波信号&#xff0c;就像在喧闹的菜市场里听清远处朋友的耳语。传统模拟锁相放大器需…...

LumiPixel优化升级:如何利用Z-Image模型生成更细腻的像素人像

LumiPixel优化升级&#xff1a;如何利用Z-Image模型生成更细腻的像素人像 1. 引言&#xff1a;像素艺术的复兴与挑战 像素艺术作为一种独特的数字艺术形式&#xff0c;近年来在游戏、NFT和数字设计领域迎来复兴。然而传统像素创作面临两大核心挑战&#xff1a; 细节表现力不…...

Crawl4AI浏览器配置文件创建与键盘交互处理终极指南:打造个性化爬虫身份

Crawl4AI浏览器配置文件创建与键盘交互处理终极指南&#xff1a;打造个性化爬虫身份 【免费下载链接】crawl4ai &#x1f525;&#x1f577;️ Crawl4AI: Open-source LLM Friendly Web Crawler & Scrapper 项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4ai…...

Science重磅指南:如何打造高影响力论文摘要?附Abstract写作黄金法则!

1. 科学论文摘要的黄金结构 写论文摘要就像给陌生人讲一个精彩的故事——要在短短200字内让人眼前一亮。我在Nature和Science上发过几篇论文&#xff0c;也审过上百篇投稿&#xff0c;发现顶级期刊的摘要其实有套"万能公式"。这个公式的核心是把摘要拆解成7个关键部分…...