小程序movable-area拖拽fixed点击失效
发布时间:2020-12-14 19:23:12 所属栏目:资源 来源:网络整理
导读:前言 先看效果 实现了拖拽,但是可拖拽区域下层的点击事件失效,本来做拖拽就是为了解决下层被遮挡然后无法点击 这下可好了,无法点击的区域更高了。还好从网上找到了解决办法 movable-view { pointer-events : auto; } movable-area { pointer-events : non
前言先看效果 实现了拖拽,但是可拖拽区域下层的点击事件失效,本来做拖拽就是为了解决下层被遮挡然后无法点击 这下可好了,无法点击的区域更高了。还好从网上找到了解决办法 movable-view {
pointer-events: auto;
}
movable-area {
pointer-events: none;
}
实现悬浮icon可垂直拖拽微信小程序自带movable-area和movable-view完美的实现了 areaH为可移动的高度,这里获取了手机设备的屏幕高度减去上下的留白,并且做了iPhoneX的适配 resetY是让icons返回到初始位置 下图蓝色区域 因为是公共组件movable-view height就通过properties传入了,本来打算通过小程序的boundingClientRect方法获取,但是因为渲染速度慢,可能height为0,所以就老老实实传入 <movable-area style="height:{{areaH}}px;" class="ex-class {{iphoneX?'x-class':''}}">
<movable-view x="{{x}}" y={{y}}" style={{height}}px;" direction="vertical">
<view class="btns-bg " id="icons-container">
<slot name="icons"></slot>
</view>
</movable-view>
</movable-area>
// components/s-icon-btns/index.js
const App = getApp()
Component({
/**
* 组件的属性列表
*/
externalClasses: ['ex-class'],options: {
multipleSlots: true
},properties: {
// 容器高度
height: {
type: Number,value: 0,observer(newVal,oldVal) {
// 设置y初始位置
this.setData({
y: this.data.areaH - newVal
})
}
},resetY: {
// 与!wiggle
type: Boolean,value: false,oldVal) {
data.areaH - data.height
})
}
}
},/**
* 组件的初始数据
*/
data: {
iphoneX: App.globalData.isIphoneX,x: 10,areaH: App.globalData.isIphoneX
? App.globalData.mobile.windowHeight - 240
: App.globalData.mobile.windowHeight - 180 //可动区域
},136);">/**
* 组件的方法列表
*/
methods: {}
})
.btns-bg {
// position: fixed;
// right: 10px;
// bottom: 110px;
// z-index: 1000;
background: rgba(255,0.9);
width: 45px;
min-height: border-radius: display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
padding: 10px 0;
box-shadow: 0rpx 20rpx rgba(0.07);
&.lower {
bottom: 61px;
}
}
.x-class {
margin-bottom: 68rpx;
}
movable-view {
pointer-events: auto;
10px;
box-sizing: content-box;
}
movable-area {
pointer-events: none;
position: fixed;
right: 0px;
70px;
z-index: 1000;
65px;
overflow: hidden;
}
总结除了遇见的bug,其他的还是很简单的方便的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |