当前位置: 首页 > news >正文

Parallax.js:让智能设备视差效果更智能、更自然

今天给大家分享一款功能非常强大的javascript视觉差特效引擎插件:Parallax.js

Parallax.js简介

Parallax.js是一个简单的,轻量级的视差引擎。你可以将它作为作为jQueryZepto插件来使用,也可以以纯JS的方式来使用。

最-最-最厉害的是它可以对智能设备的方向作出反应,即使在没有陀螺仪或运动检测硬件可用的时候,也可使用光标的位置来代替。

我要开始啦

准备工作

首先肯定是先引入JS库。有三种方法:

1)使用CDN

<script src="https://cdnjs.cloudflare.com/ajax/libs/parallax/3.1.0/parallax.min.js"></script>

2)在GitHub上下载Parallax.js,如下图所示。

下载最新版本的ZIP包,解压获得parallax.jsparallax.min.js。用其中一个就好。

3)npm依赖安装

npm i -s parallax-js
  • 源码路径:node_modules/parallax-js/src/parallax.js
  • 产品版路径:node_modules/parallax-js/dist/parallax.min.js

再根据你喜欢的工作流程要求导入库

import Parallax from 'parallax-js' or
const Parallax = require('parallax-js')

使用方法

每个Parallax.js实例都需要一个Dom元素,我们称为场景。让我们任意定义一个。

<div id="scene">
</div>

场景中的每个子元素都可以成为移动目标。我们先来最简单的。

<div id="scene"><div>My first Layer!</div><div>My second Layer!</div>
</div>

在视差场景中移动的每个项目的类别layerdata-depth指定其在场景中的深度的属性。

深度0,将导致层保持静止。

深度1,将使层通过所计算出的运动的总效果移动。

0和1之间的值将导致图层相对于提供的比例移动一个量。

<style>#scene {width: 800px;height: 600px;margin: 200px auto;}
</style>
<div id="scene"><div class="layer" data-depth="0.2">My first Layer!</div><div class="layer" data-depth="0.6">My second Layer!</div>
</div>

一旦DOM元素加载好,就可以创建出Parallax.js实例啦。

var scene = document.getElementById('scene');
var parallaxInstance = new Parallax(scene);

好了,你已经学会Parallax.js的入门操作了。看下效果!

就这么简单、粗暴!

进阶使用

Parallax.js如果仅仅是这样,且不弱爆啦?
在学习Parallax.js定义的多种配置和方法前,让我们来看看"目标"是怎么移动的?

层运动的计算规则

目标”,其实就是我们场景中的子元素,需要用class="layer"来指明,又称为""。每一个层的运动量依赖于3个因素:

  • scalarXscalarY的值
  • 父DOM元素的尺寸大小
  • 一个parallax场景中层的depth值

计算的公式如下:

/*** xMotion: x方向的总运动量* yMotion: y方向的总运动量* parentElement.width: 父容器的宽度* parentElement.height: 父容器的高度* scalarX:默认值10.* scalarY: 默认值10.* layerDepth: data-depth属性值* /
xMotion = parentElement.width  * (scalarX / 100) * layerDepth
yMotion = parentElement.height * (scalarY / 100) * layerDepth  

这就是画面中层级移动的原因。

行为属性配置参数

你可以为任何给定的Parallax实例设置如下这些行为的配置参数。可以在HTML标签中使用data属性来指定,也可以通过构造函数和API在JavaScript中指定

其他API方法

上面说过,一些属性参数配置项可以通过方法来指定,如scalar-xscalar-y,就可以通过scalar(x, y)来调用。
除此之外,Parallax.js还有如下常用方法:

parallax.enable(); //让禁止运行的实例恢复运行
parallax.disable(); //禁止实例运行
parallax.destroy(); //销毁实例

作为jQuery插件使用

如果你将Parallax.js作为jQueryZepto插件来使用,可以如下方式使用:

$('#scene').parallax();   //或带参数的用法:
$('#scene').parallax({calibrateX: false,calibrateY: true,invertX: false,invertY: true,limitX: false,limitY: 10,scalarX: 2,scalarY: 8,frictionX: 0.2,frictionY: 0.8,originX: 0.0,originY: 1.0
}); 

注意:使用jQueryZepto前,要引入相应的库。

看看这个Demo效果:

还没使用过Parallax.js的小伙伴们,赶紧秀起来吧!

最后

【程序视点】助力打工人减负,从来不是说说而已!

后续小二哥会继续详细分享更多实用的工具和功能。持续关注,这样就不会错过之后的精彩内容啦!

如果这篇文章对你有帮助的话,别忘了【点赞】【分享】支持下哦~

http://www.lryc.cn/news/481055.html

相关文章:

  • 一文熟悉新版llama.cpp使用并本地部署LLAMA
  • vue/react做多语言国际化的时候,在语言配置中不同的语言配置不同的字体,动态引入scss里面
  • Unity——鼠标点击信息和当前位置获取
  • vue 2的v-***关键字作用及使用场景
  • Matlab实现鲸鱼优化算法优化随机森林算法模型 (WOA-RF)(附源码)
  • 【Android】ubutun 创建Androidstudio桌面快捷方式
  • javascript 流程控制,数组【知识点整理】
  • 2.索引:SQL 性能分析详解
  • Flink SQL
  • 鸿蒙UI开发——实现环形文字
  • QT版发送邮件程序
  • JavaSE:初识Java(学习笔记)
  • ClickHouse创建分布式表
  • Flink转换算子
  • ThinkBook 14+ 2024 Ubuntu 触控板失效 驱动缺失问题解决
  • 【青牛科技】应用方案 | D75xx-150mA三端稳压器
  • WPF之iconfont(字体图标)使用
  • 08、Java学习-面向对象中级:
  • springboot集成onlyoffice(部署+开发)
  • LabVIEW编程基础教学(二)--数据类型
  • 「Mac畅玩鸿蒙与硬件29」UI互动应用篇6 - 多选问卷小应用
  • Flutter中文字体设置指南:打造个性化的应用体验
  • git下载慢下载不了?Git国内国外下载地址镜像,git安装视频教程
  • 安卓属性动画插值器(Interpolator)详解
  • OSPF总结
  • Spring Boot驱动的多维分类知识管理系统
  • CSS教程(七)- 背景
  • PNG图片批量压缩exe工具+功能纯净+不改变原始尺寸
  • 【双十一特惠】腾讯云省钱攻略:如何智取云计算资源
  • 爬虫学习8