npm 包 @spotware/react-dnd-scrollzone 使用教程

介绍

@spotware/react-dnd-scrollzone 是一个支持拖放并在拖放时自动滚动的 React 组件。它支持嵌套滚动,并使用 resize 检测和 requestAnimationFrame 以实现高性能。它基于 react-dnd 和 react-scroll 驱动。

安装

使用 npm 或 yarn 安装:

--- ------- ------ ------------------------------

或者

---- --- ------------------------------

示例

------ ----- ---- --------
------ - ----------- - ---- ------------
------ - ------------ - ---- --------------------------
------ - ---------- - ---- ---------------------------------

----- --------------- - -- ---------- -- -- -
  ----- ------ - -
    ---------------- -----------------
    ------ --------
    -------- ---- ------
    ------- ------
    -------- ---------- - --- - --
    ------- ------
  --
  ------ ---- ---------------- -- - --------- ----------------
--

----- --- - -- -- -
  ------ -
    ------------ -----------------------
      ------------
        ---------------- --
      -------------
    --------------
  --
-

------ ------- ----

使用方法

Scrollzone

使用 Scrollzone 组件包裹需要支持滚动的区域。它支持以下属性:

  • scrollSpeed: 设置滚动速度,默认为 20
  • scrollCallback: 滚动时执行的回调函数,默认为空函数
  • scrollGrid: 滚动区域是否按照网格滚动,默认为 true
----------- ---------------- ------------------ ------------------ -- --------------------------
  --- ---- ---- ---- ---
-------------

DndItem

如果您的组件需要支持拖放,则应使用 DndItem 。它支持以下属性:

  • id: 您的组件的唯一 ID
  • type: 您的组件的类型
  • monitor: 拖出时检测器,默认为 CollectedProps 实例
  • drop: 拖动被放置在目标上时执行的回调函数,默认为空函数
  • beginDrag: 拖动开始时执行的回调函数,默认为空函数
  • endDrag: 拖动结束时执行的回调函数,默认为空函数
  • style: 设置被拖拽时的样式,默认为 null
  • className: 设置被拖拽时的 CSS 类,默认为 null

在您的组件中使用 DndItem:

------ ----- ---- --------
------ - ------- - ---- ------------
------ - ------- - ---- ---------------------------------

----- --------------- - -- ---- -- -- -
  ----- -------------- ----- - ---------
    ----- - ----- -------------- --
    -------- ------- -- --
      ----------- ----------------------
    --
  ---
  ----- ------ - -
    -------- ---------- - --- - --
    ------- ------
  --
  ------ -
    --------
      ---------------------------
      -------------------
      -----------------
      -------- -- -------------- --- ------- -- - ---------
      ------------- -- -------------- ------- ------------
      ----------- -- -------------- -------- ------------
      --------------
      --------------------------
    -
      ---- -----------
        - -- - --------- --------- ------
      ------
    ----------
  --
--

------ ------- ----------------

DndTarget

如果您的组件需要支持放置,则应使用 DndTarget 。它支持以下属性:

  • id: 您的组件的唯一 ID
  • types: 您支持的拖拽类型
  • monitor: 拖出时检测器,默认为 CollectedProps 实例
  • dragOver: 拖动被悬停在目标元素上时执行的回调函数,默认为空函数
  • drop: 拖动被放置在目标上时执行的回调函数,默认为空函数
  • canDrop: 如果可以将拖动内容放在该特定目标上,则返回 true ,否则返回 false

在您的组件中使用 DndTarget:

------ ----- ---- --------
------ - ------- - ---- ------------
------ - --------- - ---- ---------------------------------

----- ----------------- - -- ---- -- -- -
  ----- -- ------ -- ----- - ---------
    ------- ---------------
    -------- ------- -- --
      ------- ------------------
    --
  ---
  ----- ------ - -
    ---------------- ------ - ----------- - -------
  --
  ------ -
    ----------
      ------------------------
      ------------------------
      -----------------
      ------------ -- -------------- -- ----- ------- --------
      -------- -- -------------- ---- ----- ------------
      ----------- -- -----
    -
      ---- ---------- ---------------
        - -- - -------- ------
      ------
    ------------
  --
--

------ ------- ------------------

总结

@spotware/react-dnd-scrollzone 是一个方便的 React 组件包,用于使您的应用程序支持拖放并在拖放时自动滚动。通过使用 DndItem 和 DndTarget 组件,您可以方便地将组件支持为拖放并在 Scrollzone 组件中进行滚动。这使您能够轻松地构建具有高级拖放功能和自动滚动的优美用户界面。试试这个包,看看它能为您的应用程序带来什么价值!

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066b6051ab1864dac672ab


猜你喜欢

  • npm 包 @ineentho/react-rangeslider 使用教程

    介绍 在前端开发中,使用拖动滑块来选择某个值的需求非常常见。@ineentho/react-rangeslider 是一个使用 React 实现的滑块组件库,提供了强大而易于使用的滑块功能。

    3 年前
  • npm 包 @indream/skygear-core 使用教程

    在前端开发中,我们经常需要通过调用后端接口来获取数据和完成业务逻辑。而使用 npm 包 @indream/skygear-core 可以轻松地实现前端与后端之间的数据传输和同步。

    3 年前
  • 包含 @hypersprite/react-geolocation-hoc 的前端应用

    在现代的 Web 应用程序中,地理定位是非常重要的功能。可以实现很多有趣的功能,比如定制化的个性化服务、针对特定区域的广告、距离感知和导航等等。Node Package Manager (npm) 提...

    3 年前
  • npm 包 char.min.js 使用教程

    在前端开发中,文字在页面中经常扮演重要角色。而 char.min.js 是一个小巧而功能强大的 npm 包,它可以提供各种方便的文字处理方法。在本文中,我将详细介绍 char.min.js 的使用方法...

    3 年前
  • npm 包 channel.min.js 使用教程

    前言 在前端开发中,经常需要实现页面之间的通信。如果是简单的单向通信,可以使用事件机制实现。但是如果是复杂的双向通信,就需要借助一些工具。其中, channel.min.js 就是一款非常实用的 np...

    3 年前
  • npm 包 @hyperdrives/classtab 使用教程

    介绍 在前端开发中,我们时常需要使用标签页来展示不同的内容。@hyperdrives/classtab 是一个高度可定制的标签页组件,它允许我们根据自己的需求设置不同的样式和效果,并支持多种交互方式。

    3 年前
  • npm 包 @hyperdrives/webassembly.org 使用教程

    在前端开发中,使用 WebAssembly 技术可以加速代码的执行速度,提高用户体验。而 @hyperdrives/webassembly.org 是一个为前端开发者打造的 WebAssembly 处...

    3 年前
  • npm 包 @hypersprite/material-ui-dropins 使用教程

    简介 @hypersprite/material-ui-dropins 是一个为前端提供精美 UI 组件的 npm 包,其中包括了一些很有用的组件,例如拖拽文件上传组件、动态表格组件、搜索框组件等等。

    3 年前
  • npm 包 @hysryt/kariga 使用教程

    前言 npm 是一个很方便的包管理工具,让我们能够很好地管理我们的项目依赖。在前端开发中,经常会使用各种 npm 包来辅助开发工作。今天我们要介绍的是一个在前端图形化开发中非常实用的 npm 包 @h...

    3 年前
  • npm 包 @hypersprite/react-vignette 使用教程

    介绍 @hypersprite/react-vignette 是一个 React 组件,可以将图片等媒体内容显示为漂亮的画框式效果,提供了丰富的自定义选项,适合用于相册、全屏图片查看等场景。

    3 年前
  • npm 包 @hysryt/sukusho 使用教程

    介绍 @hysryt/sukusho 是一款为前端开发者提供的轻量级的框架,用于实现自定义样式的选择器,以便更高效地构建网站页面。本文介绍了如何使用该 npm 包,并提供了一些示例代码供参考。

    3 年前
  • npm 包 console.min.js 使用教程

    在前端开发中,我们经常需要使用 console 来进行输出调试信息。但是,由于在生产环境中使用 console 仍存在一些问题,因此我们需要一个可以帮助我们解决这些问题的工具。

    3 年前
  • npm 包 booting.min.js 使用教程

    简介 booting.min.js 是一个小而强大的 JavaScript 库,可以用于实现网站 loaded/ready 时的动画效果。它的特色是体积小(压缩后只有 2KB)且易用。

    3 年前
  • npm 包 @infctr/bem-cn 使用教程

    BEM 是面向组件的 CSS 架构风格,它的核心是将页面分解成不同的组件,并使用块、元素、修饰器的方式来定义 CSS 样式。而 @infctr/bem-cn 是一个 npm 包,旨在提供一种更加灵活和...

    3 年前
  • npm 包 @infektweb/conventions 使用教程

    前言 在开发前端项目的过程中,我们经常需要在不同页面或组件之间共享数据或者使用某些第三方插件等。为了解决这些问题,我们通常需要使用一些规范或者命名约定来统一管理我们的代码。

    3 年前
  • npm 包 chat.min.js 使用教程

    简介 chat.min.js 是一个轻量级的 JavaScript 库,用于在前端实现在线聊天功能。它可以帮助前端开发者快速地集成聊天系统,优雅地展示聊天记录并实现即时通讯。

    3 年前
  • npm包@ifiske/cordova-plugin-fcm使用教程

    在现代移动应用程序中,推送通知成为了通信和发布的主要方式。Firebase Cloud Messaging(FCM)是Google提供的一项免费服务,为开发人员提供了在移动应用程序中发送“云消息”(以...

    3 年前
  • npm 包 chart.min.js 使用教程

    前言 在前端开发中,图表是很常见的需求。为了方便地实现图表的绘制,许多前端开发者都采用了 chart.min.js 这个优秀的 npm 包。本文将着重介绍如何使用 chart.min.js ,并附上详...

    3 年前
  • npm包@ifours/react-native-page-view使用教程

    简介 @ifours/react-native-page-view是一种React Native组件,可以用于创建水平页面视图,用户可以在这些页面间滑动。 安装 要安装@ifours/react-na...

    3 年前
  • npm 包 @influitive/icons 使用教程

    在前端开发中,图标设计是一个非常重要的部分。随着项目越来越复杂,手动维护图标库变得不可行,因此使用第三方图标库来管理图标变得非常实用。@influitive/icons 是一个非常实用的图标库,能够帮...

    3 年前

相关推荐

    暂无文章