小程序UI——相对定位和绝对定位

本文深入探讨了小程序中相对定位与绝对定位的概念。相对定位是指元素相对于自身定位,而绝对定位则是相对于最近已定位的父级元素进行定位。在编码实战部分,展示了如何使用`position:relative`和`position:absolute`来调整元素的位置,通过设置`left`和`top`属性实现水平和垂直方向的偏移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、理解相对定位和绝对定位
①相对定位的元素是相对自身进行定位,参照物是自己
②绝对定位的元素是相对离它最近的一个已定位的父级元素进行定位






二、相对定位、绝对定位的编码实战
position:relative 开启相对路径模式
left:相对于自身向右偏移50rpx
top:相对于自身向下偏移50rpx

position:absolute 开启绝对路径模式
left:相对于离他最近的已定位的父级元素向右偏移50rpx
top:相对于离他最近的已定位的父级元素向下偏移50rpx

### 微信小程序左滑删除功能实现 为了使微信小程序中的左滑删除功能具有更加自然的滑动动画效果,可以采用JavaScript创建动画的方法来控制元素的位置变化。这种方式相较于CSS3动画,在处理动态数据时表现更好,能够减少DOM刷新次数,提高性能并确保过渡更为平滑[^3]。 #### WXML 结构设计 WXML文件定义了一个容器视图`<view>`用于容纳待交互的内容项及其对应的删除按钮。当检测到用户的触控移动行为(`bindtouchmove`)时,依据手指在屏幕上的横向位移量调整该容器内显示区域的位置属性,从而模拟出卡片被拖拽的效果: ```html <view class="list {{ item.isTouchMove ? 'touch-move-active' : '' }}" data-index="{{index}}" bindtouchstart="touchStart" bindtouchmove="touchMove"> <view class="txt">{{item.title}}</view> <view class="del" data-index="{{ index }}" bindtap="delList">删除</view> </view> ``` #### WXSS 样式设置 通过为`.list`类指定相对定位,并对其内部两个子节点应用绝对定位规则,使得它们能够在父级范围内自由浮动而不影响其他UI组件布局。同时利用`:active`伪类增强用户体验感——即当用户点击或按压某个列表条目时自动激活特定状态下的视觉反馈样式[^2]: ```css .list { position: relative; } .txt, .del { position: absolute; top: 0; bottom: 0; } .touch-move-active .del { /* 当isTouchMove=true时生效 */ } ``` #### JavaScript 动态逻辑编写 核心在于监听触摸事件序列(开始、移动、结束),并通过计算每次手势产生的偏移距离更新当前项目的水平坐标值。具体来说,就是在`touchMove()`函数里获取最新的X轴方向增量,再据此修改目标对象的transform矩阵参数完成即时渲染;而在释放时刻,则需判断最终停留位置是否满足预设阈值条件以决定执行隐藏还是恢复初始形态的操作[^1]。 ```javascript Page({ touchStart(e) { const { pageX } = e.touches[0]; this.setData({ startX: pageX }); }, touchMove(e) { let deltaX = e.detail.x - this.data.startX; if (Math.abs(deltaX) >= 5 && !this.flag){ this.flag = true; // 防止多次触发 // 更新项目位置... this.updateItemPosition(deltaX); } }, updateItemPosition(offsetX){ // 创建新的动画实例 var animation = wx.createAnimation({ duration: 300, timingFunction: "ease", }); // 应用变换 animation.translateX(offsetX).step(); // 将动画应用于对应的数据字段 this.setData({ animationData: animation.export() }) } }) ``` 上述代码片段展示了如何基于用户输入构建流畅且直观的手势响应机制,其中特别强调了对连续性动作的支持以及防止意外情况发生的保护措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值