W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵(lì)
版本要求:基礎(chǔ)庫 1.11.0 或更高版本;若版本較低,建議做 兼容處理。
可移動的視圖容器,在頁面中可以拖拽滑動。movable-view 必須在 movable-area 組件中,并且必須是直接子節(jié)點(diǎn),否則不能移動。
注意:
<!-- API-DEMO page/component/movable-view.axml -->
<view class="page">
<view class="page-description">可移動視圖</view>
<view class="page-section">
<view class="page-section-title">movable-view區(qū)域小于movable-area</view>
<view class="page-section-demo">
<movable-area>
<movable-view x="{{x}}" y="{{y}}" direction="all">movable-view</movable-view>
</movable-area>
</view>
<button style="margin-left: 10px; mrigin-right: 10px;" type="primary" onTap="onButtonTap">點(diǎn)擊移動到 (30px, 30px)</button>
</view>
<view class="page-section">
<view class="page-section-title">movable-view區(qū)域大于movable-area</view>
<view class="page-section-demo">
<movable-area>
<movable-view class="max" direction="all">movable-view</movable-view>
</movable-area>
</view>
</view>
<view class="page-section">
<view class="page-section-title">只可以橫向移動</view>
<view class="page-section-demo">
<movable-area>
<movable-view direction="horizontal">
movable-view
</movable-view>
</movable-area>
</view>
</view>
<view class="page-section">
<view class="page-section-title">只可以縱向移動</view>
<view class="page-section-demo">
<movable-area>
<movable-view direction="vertical">
movable-view
</movable-view>
</movable-area>
</view>
</view>
</view>
// API-DEMO page/component/movable-view.js
Page({
data: {
x: 0,
y: 0,
},
onButtonTap() {
const { x, y } = this.data;
if (x === 30) {
this.setData({
x: x + 1,
y: y + 1,
});
} else {
this.setData({
x: 30,
y: 30
});
}
},
});
// API-DEMO page/component/movable-view.json
{
"allowsBounceVertical": "NO"
}
/* API-DEMO page/component/movable-view.acss */
movable-area {
height: 400rpx;
width: 400rpx;
margin: 50rpx 0rpx 0 50rpx;
background-color: #ccc;
overflow: hidden;
}
movable-view {
display: flex;
align-items: center;
justify-content: center;
height: 200rpx;
width: 200rpx;
background: #108ee9;
color: #fff;
}
.max {
width: 600rpx;
height: 600rpx;
}
屬性名 | 類型 | 默認(rèn)值 | 描述 | 最低版本 |
---|---|---|---|---|
direction | String | none | movable-view 的移動方向,屬性值有 all、vertical、horizontal、none。 | - |
inertia | Boolean | false | movable-view 是否帶有慣性。 | 1.20.0 |
out-of-bounds | Boolean | false | 超過可移動區(qū)域后,movable-view 是否還可以移動。 | 1.20.0 |
x | Number | 0 | 定義 x 軸方向的偏移,會換算為 left 屬性,如果 x 的值不在可移動范圍內(nèi),會自動移動到可移動范圍。 | - |
y | Number | 0 | 定義 y 軸方向的偏移,會換算為 top 屬性,如果 y 的值不在可移動范圍內(nèi),會自動移動到可移動范圍。 | - |
damping | Number | 20 | 阻尼系數(shù),用于控制x或y改變時(shí)的動畫和過界回彈的動畫,值越大移動越快。 | 1.20.0 |
friction | Number | 2 | 摩擦系數(shù),用于控制慣性滑動的動畫,值越大摩擦力越大,滑動越快停止;必須大于 0,否則會被設(shè)置成默認(rèn)值。 | 1.20.0 |
disabled | Boolean | false | 是否禁用。 | - |
scale | Boolean | false | 是否支持雙指縮放,默認(rèn)縮放手勢生效區(qū)域是在 movable-view 內(nèi)。 | 1.20.0 |
scale-min | Number | 0.5 | 定義縮放倍數(shù)最小值。 | 1.20.0 |
scale-max | Number | 10 | 定義縮放倍數(shù)最大值。 | 1.20.0 |
scale-value | Number | 1 | 定義縮放倍數(shù),取值范圍為 0.5 - 10。 | 1.20.0 |
animation | Boolean | false | 是否使用動畫。 | 1.20.0 |
onTouchStart | EventHandle | - | 觸摸動作開始,事件會向父節(jié)點(diǎn)傳遞。 | 1.11.5 |
catchTouchStart | EventHandle | - | 觸摸動作開始,事件僅作用于組件,不向父節(jié)點(diǎn)傳遞。 | 1.11.5 |
onTouchMove | EventHandle | - | 觸摸移動事件,事件會向父節(jié)點(diǎn)傳遞。 | 1.11.5 |
catchTouchMove | EventHandle | - | 觸摸移動事件,事件僅作用于組件,不向父節(jié)點(diǎn)傳遞。 | 1.11.5 |
onTouchEnd | EventHandle | - | 觸摸動作結(jié)束,事件會向父節(jié)點(diǎn)傳遞。 | 1.11.5 |
catchTouchEnd | EventHandle | - | 觸摸動作結(jié)束,事件僅作用于組件,不向父節(jié)點(diǎn)傳遞。 | 1.11.5 |
onTouchCancel | EventHandle | - | 觸摸動作被打斷,如來電提醒、彈窗。 | 1.11.5 |
onChange | EventHandle | - | 拖動過程中觸發(fā)的事件,event.detail = {x: x, y: y, source: source} ,其中 source 表示產(chǎn)生移動的原因,值可為 touch(拖動)。 |
- |
onChangeEnd | EventHandle | - | 拖動結(jié)束觸發(fā)的事件,event.detail = {x: x, y: y} 。 |
- |
onScale | EventHandle | - | 縮放過程中觸發(fā)的事件,event.detail = {x, y, scale }。 |
1.20.0 |
source字段表示產(chǎn)生移動的原因
值 | 說明 |
---|---|
touch | 拖動。 |
touch-out-of-bounds | 超出移動范圍。 |
out-of-bounds | 超出移動范圍后的回彈。 |
friction | 慣性。 |
空字符串 | setData。 |
說明:冒泡事件,請查看 事件介紹 中的 事件類型。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: