更新记录

1.0.4(2023-01-30)

解决 showAnimation_dot 触底和触右不停问题

1.0.3(2023-01-30)

解决 showAnimation_dot 下移动延迟问题

1.0.2(2022-11-07)

解决不可推动区域小球 到达右墙和下墙不停止 问题

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × ×

telly-ballControl

APP H5 微信小程序 支付宝小程序 百度小程序 字节跳动小程序 QQ小程序
未测 未测 未测 未测

插件属性

属性称名 类型 默认值 说明
showAnimation_dot Boolean true 显示不可拖动区域物体
showMovable_dot Boolean true 显示可拖动区域物体
showtext Boolean true 显示文字
areaview Object - 物体移动区域大小
dotview Object - 物体大小
dot_movablearea Object - 可移动物体属性 showMovable_dot=true 才可用
ball_movablearea Object - 控制小球属性
ball_excursion Object - 控制小球偏移
speed Number 0.1 物体移速
directionF Function Object 控制各方向是否可移动

areaview 物体移动区域大小

属性称名 类型 默认值 说明
wrapperWidth Number 350 单位px
wrapperHeight Number 200 单位px

dotview 物体大小

属性称名 类型 默认值 说明
dotWidth Number 20 单位px
dotHeight Number 20 单位px

dot_movablearea

属性称名 类型 默认值 说明
direction String all movable-view的移动方向,属性值有all、vertical、horizontal、none
inertia Boolean false movable-view是否带有惯性
outofbounds Boolean true 超过可移动区域后,movable-view是否还可以移动
x Number 0 定义x轴方向的偏移,如果x的值不在可移动范围内,会自动移动到可移动范围;改变x的值会触发动画
y Number 0 定义y轴方向的偏移,如果y的值不在可移动范围内,会自动移动到可移动范围;改变y的值会触发动画
damping Number 1000 阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快
friction Number 1000 摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于0,否则会被设置成默认值

ball_movablearea

属性称名 类型 默认值 说明
direction String all movable-view的移动方向,属性值有all、vertical、horizontal、none
inertia Boolean false movable-view是否带有惯性
outofbounds Boolean true 超过可移动区域后,movable-view是否还可以移动
x Number 0 定义x轴方向的偏移,如果x的值不在可移动范围内,会自动移动到可移动范围;改变x的值会触发动画
y Number 0 定义y轴方向的偏移,如果y的值不在可移动范围内,会自动移动到可移动范围;改变y的值会触发动画
damping Number 1000 阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快
friction Number 1000 摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于0,否则会被设置成默认值

ball_excursion 控制小球偏移

属性称名 类型 默认值 说明
excursionx Number 10 单位px
excursiony Number 10 单位px

directionF 控制各方向是否可移动 返回值Object

属性称名 类型 默认值 说明
move_left Boolean true 向左可以移动
move_right Boolean true 向右可以移动
move_up Boolean true 向上可以移动
move_down Boolean true 向下可以移动

事件

事件名 说明 返回值
@change 位置值发生改变时执行 {x:0,y:0}

用法示例

<template>
    <view>
        <telly-ballControl :showAnimation_dot="showAnimation_dot" :showMovable_dot="showMovable_dot"
            :showtext="showtext" :areaview="areaview" :dotview="dotview" :dot_movablearea="dot_movablearea"
            :ball_movablearea="ball_movablearea" :ball_excursion="ball_excursion" :speed="speed" @change="change"
            :canMove="canMove" :directionF="directionF">
        </telly-ballControl>
        <view class="" style="text-align: center;">
            <view class="" :style="canMove.move_left?'':'color: red;'" @click="move('left')">禁止左移动</view>
            <view class="" :style="canMove.move_right?'':'color: red;'" @click="move('right')">禁止右移动</view>
            <view class="" :style="canMove.move_up?'':'color: red;'" @click="move('up')">禁止上移动</view>
            <view class="" :style="canMove.move_down?'':'color: red;'" @click="move('dowm')">禁止下移动</view>
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                showAnimation_dot: true, //显示不可拖动区域物体
                showMovable_dot: true, //显示可拖动区域物体
                showtext: true, //显示文字
                areaview: { //物体移动区域大小
                    wrapperWidth: 350,
                    wrapperHeight: 200,
                },
                dotview: { //物体大小
                    dotWidth: 20,
                    dotHeight: 20,
                },
                dot_movablearea: { //可移动物体属性
                    direction: 'all', //movable-view的移动方向,属性值有all、vertical、horizontal、none
                    inertia: false, //movable-view是否带有惯性
                    outofbounds: false, //超过可移动区域后,movable-view是否还可以移动 
                    x: 0, //定义x轴方向的偏移,如果x的值不在可移动范围内,会自动移动到可移动范围;改变x的值会触发动画
                    y: 0, //定义y轴方向的偏移,如果y的值不在可移动范围内,会自动移动到可移动范围;改变y的值会触发动画
                    damping: 1000, //阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快
                    friction: 1000, //摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于0,否则会被设置成默认值

                },
                ball_movablearea: { //控制小球属性
                    direction: 'all', //movable-view的移动方向,属性值有all、vertical、horizontal、none
                    inertia: false, //movable-view是否带有惯性 
                    outofbounds: true, //超过可移动区域后,movable-view是否还可以移动
                    x: 0, //定义x轴方向的偏移,如果x的值不在可移动范围内,会自动移动到可移动范围;改变x的值会触发动画
                    y: 0, //定义y轴方向的偏移,如果y的值不在可移动范围内,会自动移动到可移动范围;改变y的值会触发动画
                    damping: 1000, //阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快
                    friction: 1000, //摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于0,否则会被设置成默认值

                },
                ball_excursion: { //控制小球偏移
                    excursionx: 10, //操作球x偏移
                    excursiony: 10, //操作球y偏移
                },
                speed: 0.1, //物体移速
                canMove: {
                    move_left: true,
                    move_right: true,
                    move_up: true,
                    move_down: true,
                },
                directionF: function() {}
            }
        },
        methods: {
            bcf(e) {
                return function() {
                    return e;
                };
            },
            change: function(e) {
                console.log("位置:x,y", e.x, e.y)
            },
            move: function(e) {
                if (e == 'left') {
                    if (this.canMove.move_left) {
                        this.canMove.move_left = false;
                    } else {
                        this.canMove.move_left = true;
                    }
                }
                if (e == 'right') {
                    if (this.canMove.move_right) {
                        this.canMove.move_right = false;
                    } else {
                        this.canMove.move_right = true;
                    }
                }
                if (e == 'up') {
                    if (this.canMove.move_up) {
                        this.canMove.move_up = false;
                    } else {
                        this.canMove.move_up = true;
                    }
                }
                if (e == 'down') {
                    if (this.canMove.move_down) {
                        this.canMove.move_down = false;
                    } else {
                        this.canMove.move_down = true;
                    }
                }
                console.log("direction_action", this.canMove);
                this.directionF = this.bcf(this.canMove);
            }
        }
    }
</script>

<style>

</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问