react-parallax-tilt:轻量级 React 组件悬停倾斜效果库,支持眩光、缩放等多种交互效果

👀 Easily apply tilt hover effect to React components - lightweight/zero dependencies 2.9kB

分支4Tags532
文件最后提交记录最后更新时间
1 个月前
1 年前
4 个月前
5 个月前
4 年前
1 个月前
4 个月前
4 个月前
1 年前
4 年前
1 年前
1 年前
2 年前
5 年前
6 年前
6 个月前
4 个月前
4 个月前
23 天前
23 天前
7 个月前
1 年前
4 个月前
5 个月前

React Tilt

npm version npm downloads npm bundle size Open issues TypeScript semantic-release

CI CI CI CI CI Codecov Coverage

CI CI

👀 轻松为 React 组件添加悬停倾斜效果

在线演示 💥

安装

npm install react-parallax-tilt

特性

  • 轻量级 2.9kB,零依赖 📦
  • 可树摇 🌳 支持 ESM 和 CommonJS
  • 兼容 React v15 及以上版本
  • 支持 鼠标触摸 事件
  • 支持设备倾斜(陀螺仪)功能
  • 眩光 效果 🌟 支持自定义属性(颜色、位置等)🔗演示
  • 事件跟踪 组件数值 📐(倾斜角度、眩光参数、鼠标移动等)🔗演示
  • 多种内置效果:

示例

import Tilt from 'react-parallax-tilt';

const App = () => {
  return (
    <Tilt>
      <div style={{ height: '300px', backgroundColor: 'darkgreen' }}>
        <h1>React Parallax Tilt 👀</h1>
      </div>
    </Tilt>
  );
};

属性

所有属性均为可选。
以下是所有可用属性及其默认值的完整列表:

▶︎ 表示默认值

tiltEnableboolean ▶︎ true
启用/禁用倾斜效果。

tiltReverseboolean ▶︎ false
反转倾斜方向。

tiltAngleXInitialnumber ▶︎ 0
X 轴初始倾斜角度(以度为单位)。

tiltAngleYInitialnumber ▶︎ 0
Y 轴初始倾斜角度(以度为单位)。

tiltMaxAngleXnumber ▶︎ 20
X 轴最大倾斜旋转角度(以度为单位)。范围:0°-90°

tiltMaxAngleYnumber ▶︎ 20
Y 轴最大倾斜旋转角度(以度为单位)。范围:0°-90°

tiltAxis'x' | 'y' ▶︎ undefined
仅允许在单个轴上倾斜。

tiltAngleXManualnumber | null ▶︎ null
X 轴手动倾斜旋转角度(以度为单位)。

tiltAngleYManualnumber | null ▶︎ null
Y 轴手动倾斜旋转角度(以度为单位)。

glareEnableboolean ▶︎ false
启用/禁用眩光效果。

glareMaxOpacitynumber ▶︎ 0.7
最大眩光不透明度(0.5 = 50%,1 = 100%)。范围:0-1

glareColorstring ▶︎ #ffffff
设置眩光效果的颜色。

glarePosition'top' | 'right' | 'bottom' | 'left' | 'all' ▶︎ bottom
设置眩光效果的位置。

glareReverseboolean ▶︎ false
反转眩光方向。

glareBorderRadiusstring ▶︎ 0
设置眩光的边框半径。接受任何标准 CSS 边框半径值。

scalenumber ▶︎ 1
组件的缩放比例(1.5 = 150%,2 = 200%)。

perspectivenumber ▶︎ 1000
定义倾斜组件与用户的距离感。值越小,倾斜效果越强烈。

flipVerticallyboolean ▶︎ false
启用/禁用组件的垂直翻转。

flipHorizontallyboolean ▶︎ false
启用/禁用组件的水平翻转。

resetboolean ▶︎ true
确定在 onLeave 事件时是否重置效果。

transitionEasingstring ▶︎ cubic-bezier(.03,.98,.52,.99)
过渡的缓动函数。

transitionSpeednumber ▶︎ 400
过渡的速度。

trackOnWindowboolean ▶︎ false
跟踪整个窗口的鼠标和触摸事件。

gyroscopeboolean ▶︎ false
启用/禁用设备方向检测。

onMove:({ tiltAngleX: number, tiltAngleY: number, tiltAngleXPercentage: number, tiltAngleYPercentage: number, glareAngle: number, glareOpacity: number, event: Event }) => void
当用户在组件上移动时触发的回调。

onEnter:(event: Event) => void
当用户进入组件时触发的回调。

onLeave:(event: Event) => void
当用户离开组件时触发的回调。

陀螺仪 - 设备方向

请注意,设备方向检测目前是实验性技术
在生产环境中使用前,请查看浏览器兼容性
使用设备方向时的重要注意事项:

  • 始终使用安全源(例如 https
  • 在跨域 <iframe> 元素中使用时,可能无法在所有浏览器中正常工作
iOS 13+ 上的设备方向

从 iOS 12.2 开始,Apple 默认禁用了设备运动和方向。
iOS 13+ 提供了权限 API 来访问设备方向事件。

使用陀螺仪功能时:

<Tilt gyroscope={true}>
  <h1>React Parallax Tilt 👀</h1>
</Tilt>

会弹出权限对话框,提示用户在域名级别允许运动和方向访问:

注意:需要用户进行交互(如点击按钮)才能显示权限对话框,无法在页面加载时自动触发。

开发

轻松搭建本地开发环境!

构建项目并在 localhost 上启动 storybook:

  • 克隆仓库
  • npm install
  • npm start

开始编码吧! 🎉

使用 npm link 的替代设置
  1. 克隆此仓库并导航到其位置

  2. 运行以下命令:

    npm install
    npm link # 将本地仓库链接到全局包
    npm run build:watch # 构建文件并监视变化
    
  3. 克隆要与 react-parallax-tilt 一起测试的项目并运行:

    npm install
    npm link react-parallax-tilt # 将本地副本链接到此项目的 node_modules 中
    npm start
    

贡献

欢迎所有贡献!
请查看贡献指南:拉取请求 | 问题

项目介绍

👀 轻松为React组件应用倾斜悬停效果 —— 轻量级/无依赖(3kB)【此简介由AI生成】

定制我的领域
181.08 K123访问 GitHub