综合 Granim.js:为网页背景、元素和文字添加交互式渐变效果

2024-11-19 08:26:02 +0800 CST views 1181

Granim.js:为网页背景、元素和文字添加交互式渐变效果

Granim.js 是一个开源的 JavaScript 库,专门用于创建流畅、交互式的渐变动画。通过 Granim.js,你可以为网页的背景、元素、文字添加动态的渐变效果,为用户带来更具吸引力的视觉体验。它支持丰富的渐变配置,并提供易用的 API,可以用于简单的背景动画、复杂的渐变效果、图像蒙层等场景。

示例代码

基础渐变动画

var granimInstance = new Granim({
    element: '#canvas-basic',
    direction: 'diagonal',
    isPausedWhenNotInView: true,
    states : {
        "default-state": {
            gradients: [
                ['#ff9966', '#ff5e62'],
                ['#00F260', '#0575E6'],
                ['#e1eec3', '#f05053']
            ]
        }
    }
});

复杂渐变动画

var granimInstance = new Granim({
    element: '#canvas-complex',
    direction: 'left-right',
    isPausedWhenNotInView: true,
    states : {
        "default-state": {
            gradients: [
                [
                    { color: '#833ab4', pos: .2 },
                    { color: '#fd1d1d', pos: .8 },
                    { color: '#38ef7d', pos: 1 }
                ], [
                    { color: '#40e0d0', pos: 0 },
                    { color: '#ff8c00', pos: .2 },
                    { color: '#ff0080', pos: .75 }
                ],
            ]
        }
    }
});

带图像和混合模式的渐变动画

var granimInstance = new Granim({
    element: '#canvas-image-blending',
    direction: 'top-bottom',
    isPausedWhenNotInView: true,
    image : {
        source: '../assets/img/bg-forest.jpg',
        blendingMode: 'multiply'
    },
    states : {
        "default-state": {
            gradients: [
                ['#29323c', '#485563'],
                ['#FF6B6B', '#556270'],
                ['#80d3fe', '#7ea0c4'],
                ['#f0ab51', '#eceba3']
            ],
            transitionSpeed: 7000
        }
    }
});

文字图像蒙层渐变

var granimInstance = new Granim({
    element: '#logo-canvas',
    direction: 'left-right',
    states : {
        "default-state": {
            gradients: [
                ['#EB3349', '#F45C43'],
                ['#FF8008', '#FFC837'],
                ['#4CB8C4', '#3CD3AD'],
                ['#24C6DC', '#514A9D'],
                ['#FF512F', '#DD2476'],
                ['#DA22FF', '#9733EE']
            ],
            transitionSpeed: 2000
        }
    }
});

API 介绍

选项 (Options)

  • element: 指定用于渐变动画的 canvas 元素的 CSS 选择器或 HTMLCanvasElement。(必需)
  • direction: 渐变的方向,支持 'diagonal''left-right''top-bottom''radial''custom'
  • isPausedWhenNotInView: 当动画不在视窗内时是否暂停。
  • states: 包含所有渐变状态的对象,定义颜色、位置等内容。(必需)

状态 (States)

  • gradients: 定义渐变颜色及其位置的数组。
  • transitionSpeed: 每个渐变之间的过渡时间。
  • loop: 动画是否循环。

图像 (Image)

  • source: 图像的源地址,用作蒙层。
  • blendingMode: 图像与渐变之间的混合模式。

回调函数 (Callbacks)

  • onStart: 动画开始时触发。
  • onGradientChange: 渐变发生变化时触发。
  • onEnd: 动画结束时触发。

事件 (Emitted Events)

  • 监听如 'granim:start''granim:end''granim:loop''granim:gradientChange' 等事件。

方法 (Methods)

  • play(): 播放动画。
  • pause(): 暂停动画。
  • clear(): 停止动画并清除渐变。
  • changeState(stateName): 更改当前的渐变状态。
  • changeDirection(directionName): 更改渐变的方向。
  • destroy(): 销毁实例并移除所有事件监听器。

相关链接

总结

Granim.js 是一个简单易用且功能强大的渐变动画库,它可以轻松地为网页背景、元素、文字添加交互式的渐变效果。无论是简单的背景渐变,还是复杂的图像蒙层效果,Granim.js 都能提供流畅的动画效果,并且具有高度可定制性,适合在各类网页项目中使用。

images

推荐文章

MySQL 1364 错误解决办法
2024-11-19 05:07:59 +0800 CST
php获取当前域名
2024-11-18 00:12:48 +0800 CST
filecmp,一个Python中非常有用的库
2024-11-19 03:23:11 +0800 CST
Vue3中的JSX有什么不同?
2024-11-18 16:18:49 +0800 CST
利用Python构建语音助手
2024-11-19 04:24:50 +0800 CST
16.6k+ 开源精准 IP 地址库
2024-11-17 23:14:40 +0800 CST
PHP 唯一卡号生成
2024-11-18 21:24:12 +0800 CST
windon安装beego框架记录
2024-11-19 09:55:33 +0800 CST
快手小程序商城系统
2024-11-25 13:39:46 +0800 CST
rangeSlider进度条滑块
2024-11-19 06:49:50 +0800 CST
Vue 3 是如何实现更好的性能的?
2024-11-19 09:06:25 +0800 CST
任务管理工具的HTML
2025-01-20 22:36:11 +0800 CST
一键配置本地yum源
2024-11-18 14:45:15 +0800 CST
推荐几个前端常用的工具网站
2024-11-19 07:58:08 +0800 CST
nuxt.js服务端渲染框架
2024-11-17 18:20:42 +0800 CST
Golang实现的交互Shell
2024-11-19 04:05:20 +0800 CST
Nginx 跨域处理配置
2024-11-18 16:51:51 +0800 CST
JavaScript设计模式:发布订阅模式
2024-11-18 01:52:39 +0800 CST
ElasticSearch简介与安装指南
2024-11-19 02:17:38 +0800 CST
Go 如何做好缓存
2024-11-18 13:33:37 +0800 CST
Go 协程上下文切换的代价
2024-11-19 09:32:28 +0800 CST
H5保险购买与投诉意见
2024-11-19 03:48:35 +0800 CST
联系我们
2024-11-19 02:17:12 +0800 CST
程序员茄子在线接单