微信小程序实现可长按移动控件
网络编程 2021-07-04 14:07www.168986.cn编程入门
这篇文章主要为大家详细介绍了微信小程序实现可长按移动控件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
微信小程序可长按移动控件,供大家参考,具体内容如下
–包含超出边界监测,性能不够理想【原因setData在毫秒级刷新时会极大程度影响渲染性能】
Javascript
Page({ / 页面的初始数据 / data: { //浮动按钮坐标 flow_y: 130, flow_x: 20, pre_y:0, pre_x:0, //标记移动 moveFlag: false, //标记控件是否可放置 canNotPlace: false, imgSrc:"", }, //长按按钮移动控件 longPress: function (e) { console.log(e) this.setData({ moveFlag: true, pre_x:e.touches[0].clientX, pre_y:e.touches[0].clientY, }) // console.log(e) console.log("begin:(", this.data.flow_x, this.data.flow_y, ")") // this.setData({ // flow_x: 1334-e.touches[0].pageX, // 获取触摸时的原点 // flow_y: 750-e.touches[0].pageY, // }) //console.log(startX) }, // 触摸结束事件 touchEnd: function (e) { this.setData({ moveFlag: false }) // console.log("flow:(", this.data.flow_x, this.data.flow_y, ")") //监测按钮放置区域 if (!((this.data.flow_x < 730) && (this.data.flow_x > 20))&&((this.data.flow_y < 1150) && (this.data.flow_y > 130))) { this.setData({ flow_x: 20, // 转换rpx flow_y: 130, }) } // this.setData({ // flow_x: 20, // 转换rpx // }) }, touchMove: function (e) { //根据move差值动态布局 if (this.data.moveFlag) { // console.log("page:(", e.touches[0].pageX, e.touches[0].pageY, ")") // console.log(move_x,move_y) var x =this.data.flow_x -(e.touches[0].clientX-this.data.pre_x)2 var y =this.data.flow_y -(e.touches[0].clientY-this.data.pre_y)2 this.setData({ flow_x: x, // 转换rpx flow_y: y, }) // console.log(x,y) // this.setData({ // flow_x: x, // 转换rpx // flow_y: y, // }) if (!(((x < 730) && (x > 20))&&((y < 1000) && (y > 130)))) { this.setData({ canNotPlace: true, }) } else { this.setData({ canNotPlace: false, }) } this.setData({ pre_x:e.touches[0].clientX, pre_y:e.touches[0].clientY, }) } }, catchtouchmove: function () { //防止蒙层触摸穿透 }, / 生命周期函数--监听页面加载 / onLoad: function (options) { }, / 生命周期函数--监听页面初次渲染完成 / onReady: function () { wx.hideLoading() }, / 生命周期函数--监听页面显示 / onShow: function () { }, / 生命周期函数--监听页面隐藏 / onHide: function () { }, / 生命周期函数--监听页面卸载 / onUnload: function () { }, / 页面相关事件处理函数--监听用户下拉动作 / onPullDownRefresh: function () { this.getArticle() }, / 页面上拉触底事件的处理函数 / onReachBottom: function () { }, / 用户点击右上角分享 / onShareAppMessage: function () { } })
WXSS
.follow_icon{ position: fixed; / margin: 0 10rpx; / width:70rpx; height:70rpx; bottom: var(--flow_y--); right: var(--flow_x--); z-index: 1001; } /mask/ .drawer_screen { width: 100%; height: 100%; position: fixed; : 0; left: 0; z-index: 5; background: #000; opacity: 0.5; overflow: hidden; }
WXML
<!-- 刷新按钮 --> <!-- <view bindtap='getArticle' style="opacity:0.8"> --> <view catchtouchmove="catchtouchmove" ><image bindtap='getArticle' bindlongpress="longPress" bindtouchmove='touchMove' bindtouchend="touchEnd" style="--flow_y--:{{flow_y}}rpx;--flow_x--:{{flow_x}}rpx;" class="follow_icon" src="{{imgSrc}}"></image></view> <!-- 蒙版屏蔽,防止触控穿透 --> <view style="{{!canNotPlace?'background: #777;':'background: #b81e1e;'}}" catchtouchmove="catchtouchmove" class="drawer_screen" data-statu="open" wx:if="{{moveFlag}}"></view> <!-- </view> -->
为大家推荐现在关注度比较高的微信小程序教程一篇长沙网络推广为大家精心整理的,希望喜欢。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程