前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一款美轮美奂的JavaScript 小项目

一款美轮美奂的JavaScript 小项目

作者头像
程序猿DD
发布2021-12-06 10:06:34
7070
发布2021-12-06 10:06:34
举报
文章被收录于专栏:程序猿DD

大家好,我是TJ

一个励志推荐10000款开源项目与工具的程序员

周末啦,TJ君给大家介绍1款有意思的JavaScript 项目放松一下。

use-gesture

这是一款通过事件绑定来让鼠标和触摸手势变得更加丰富多彩的React库。

而且不需要太多的复杂代码只需要很简单的几行就够了。

小伙伴们可以单独使用,也可以和react-spring这样的库一起使用。

如何安装
  • React
代码语言:javascript
复制
#Yarn
yarn add @use-gesture/react

#NPM
npm install @use-gesture/react
  • Vanilla javascript
代码语言:javascript
复制
#Yarn
yarn add @use-gesture/vanilla

#NPM
npm install @use-gesture/vanilla
效果示例

可以先来看下实际的效果:

如果您正在学习Spring Cloud,推荐一个经典教程(含Spring Cloud Alibaba):https://blog.didispace.com/spring-cloud-learning/

如何使用
  • react
代码语言:javascript
复制
import { useSpring, animated } from '@react-spring/web'
import { useDrag } from '@use-gesture/react'

function Example() {
  const [{ x, y }, api] = useSpring(() => ({ x: 0, y: 0 }))

  // Set the drag hook and define component movement based on gesture data
  const bind = useDrag(({ down, movement: [mx, my] }) => {
    api.start({ x: down ? mx : 0, y: down ? my : 0 })
  })

  // Bind it to a component
  return <animated.div {...bind()} style={{ x, y, touchAction: 'none' }} />
}
  • javascript
代码语言:javascript
复制
<!-- index.html -->
<div id="drag" />

// script.js
const el = document.getElementById('drag')
const gesture = new DragGesture(el, ({ active, movement: [mx, my] }) => {
  setActive(active)
  anime({
    targets: el,
    translateX: active ? mx : 0,
    translateY: active ? my : 0,
    duration: active ? 0 : 1000
  })
})

// when you want to remove the listener
gesture.destroy()

不同效果的HOOKS

useDrag 处理拖动手势

useMove 处理鼠标移动事件

useHover 处理鼠标进入和鼠标离开事件

useScroll 处理滚动事件

useWheel 处理滚轮事件

usePinch 处理捏手势

useGesture 在一个hook中处理多个手势

是不是挺有意思的,那就赶紧来试试吧:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿DD 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • use-gesture
    • 如何安装
      • 效果示例
        • 如何使用
          • 不同效果的HOOKS
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档