news 2026/6/15 13:42:39

motion动画库的基础用法(三)— drag拖动篇

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
motion动画库的基础用法(三)— drag拖动篇

在上一篇文章中我们讲到了Drag的drag和whileDrag属性,这只是Drag拖动属性冰山一角,这篇文章将介绍它的其他属性

1.dragConstraints

解释:对可拖动区域应用约束。设置为可选topleftrightbottom值的对象,以像素为单位测量

代码部分:

<!-- 限制横轴移动、样式 、拖动限制 --> <motion.div drag="x" style="width: 100px;height: 100px;background-color: lawngreen;" :dragConstraints="{ left: 0, right: 300 }" />

实际效果:

对比红色方块可以看到绿色方块的左右拖动存在限制

当然此属性还有另外一种用法:

作为对另一个元素的 ref,以使用其边界框作为可拖动约束

什么意思呢?假如我们有两个盒子,一个大一个小,小盒子在大盒子里面,小盒子的可拖动范围不超过大盒子的边界

代码如下:

<script setup> import { useDomRef } from "motion-v" const constraintsRef = useDomRef() </script> <template> <motion.div ref="constraintsRef" style="width: 200px;height: 200px;border: 1px solid black;"> <motion.div style="width: 50px;height: 50px;background-color: red;" drag :dragConstraints="constraintsRef" /> </motion.div> </template>

这里出现了一个陌生的方法:useDomRef,这个解释我在中文的文档中并没有找到对应的解释,在英文的文档中是这样说的

Or, it can accept an HTMLElement ref value. You can get the component's DOM

ref value usinguseDomReffrommotion-v, and pass it both to the draggable

component'sdragConstraintsprop and the ref of the component you want to

use as constraints.

这段话总结下来就是使用 useDomRef 从 motion-v 库中获取你想要作为约束边界的组件的DOM引用,就是获取 motion-v Dom的方法。

下面我们看具体的效果:

2.dragSnapToOrigin

解释:默认值为false,如果为true,则可拖动元素在释放时将动画返回到其中心/原点。

代码如下:

<motion.div drag dragSnapToOrigin style="width: 100px;height: 100px;background-color: palevioletred;" />

实际效果如下:

3.dragElastic

解释:默认值为0.5,约束外部允许的移动程度。0 = 不移动,1 = 完全移动。默认设置为 0.5。也可以设置为 false 以禁用移动。通过传递 top/right/bottom/left 的对象,可以为每个约束设置单独的值。任何缺失的值都将设置为 0。

代码如下:

<motion.div drag="x" :dragConstraints="{ left: 0, right: 300 }" :dragElastic="0.1" style="width: 100px;height: 100px;background-color: palevioletred;" /> <!-- 对比组 --> <motion.div drag="x" :dragConstraints="{ left: 0, right: 300 }" :dragElastic="0.6" style="width: 100px;height: 100px;background-color: green;" />

实际效果如下,上方的方块dragElastic为0.1,下方dragElastic为0.6:

以上就是本文章的主要内容,如果感兴趣,可以前往Motion库官网查看具体文档。

Motion for Vue 入门 | Motion for Vue - Motion 动画库

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 21:02:34

图拉科技全球布局加速 深化与整车厂及一级供应商的战略合作

发布 2026 年业务展望、多个项目计划 2027 年正式量产 动力系统效率领域领军企业、动态电机驱动&#xff08;Dynamic Motor Drive&#xff0c;简称 DMD&#xff09;技术开发商图拉科技公司今日发布最新业务进展。随着公司加速推进全球商业化进程&#xff0c;其技术在中国及欧洲…

作者头像 李华
网站建设 2026/6/15 12:24:18

Office 之 办公

Word 文档 显示导航条目

作者头像 李华
网站建设 2026/6/11 14:40:17

基于STC89C52单片机的智能窗帘控制系统设计

基于STC89C52单片机的智能窗帘控制系统设计 第一章 绪论 传统窗帘依赖人工手动开合&#xff0c;操作繁琐且无法根据环境变化自动调节&#xff0c;难以满足现代家居对便捷性、舒适性的需求。STC89C52单片机作为低成本、易上手的8位微控制器&#xff0c;适配普通家庭智能化改造的…

作者头像 李华