Parallax.js|强大的javascript视觉差特效引擎

简要教程
  Parallax.js是一款功能非常强大的javascript视觉差特效引擎插件。通过这个视觉差插件可以制作出非常炫酷的视觉差特效。它可以检测智能设备的方向。你可以将它作为jQuery插件来使用,也可以以纯JS的方式来使用。

查看演示     下载插件

      使用方法

  HTML结构
  该视觉差特效的基本HTML结构使用的是一个无序列表,每一个列表项给它们一个class layer和一个data-depth属性来指定该层的深度。深度为0的层将是固定不动的,深度为1的层运动效果最激烈的层。0-1之间的层会根据值来相对移动。

  1. <ul id="scene">
  2. <li class="layer" data-depth="0.00"><img src="layer1.png"></li>
  3. <li class="layer" data-depth="0.20"><img src="layer2.png"></li>
  4. <li class="layer" data-depth="0.40"><img src="layer3.png"></li>
  5. <li class="layer" data-depth="0.60"><img src="layer4.png"></li>
  6. <li class="layer" data-depth="0.80"><img src="layer5.png"></li>
  7. <li class="layer" data-depth="1.00"><img src="layer6.png"></li>
  8. </ul>

复制代码

  初始化插件
  要初始化视觉差效果,可以选择指定的DOM元素之后,创建一个新的Parallax对象。

  1. var scene = document.getElementById(‘scene‘);
  2. var parallax = new Parallax(scene);

复制代码

  层运动的计算规则

  每一个层的运动量依赖于3个因素:

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

  计算的公式如下:

  1. xMotion = parentElement.width  * (scalarX / 100) * layerDepth
  2. yMotion = parentElement.height * (scalarY / 100) * layerDepth

复制代码

  所以在场景中一个data-depth为0.5的层,它的scalarX和scalarY值都为10(默认值),它的父容器的尺寸为1000px x 1000px,那么这个层在x和y方向的总运动量就为:

  1. xMotion = 1000 * (10 / 100) * 0.5 = 50 # 50px of positive and negative motion in x
  2. yMotion = 1000 * (10 / 100) * 0.5 = 50 # 50px of positive and negative motion in y

复制代码

  配置参数

  下面是一些可用的配置参数,这些参数也可以在HTML标签中使用data属性来指定。

参数 描述
relativeInput true 或false Specifies whether or not to use the coordinate system of the element passed to the parallax constructor. Mouse input only
clipRelativeInput true 或false Specifies whether or not to clip the mouse input to the bounds of the element passed to the parallax constructor. Mouse input only
calibrate-x true 或false 指定是否根据初始时x轴的值来计算运动量
calibrate-y true 或false 指定是否根据初始时y轴的值来计算运动量
invert-x true 或false 设置为true则按反方向运动层
invert-y true 或false 设置为true则按反方向运动层
limit-x number 或false x方向上总的运动量数值范围,设置为false则允许层自由运动
limit-y number 或false y方向上总的运动量数值范围,设置为false则允许层自由运动
scalar-x number 输入的运动量和这个值相乘,增加或减少层运动的灵敏度
scalar-y number 输入的运动量和这个值相乘,增加或减少层运动的灵敏度
friction-x number 0-1 层运动的摩擦量,实际上是在层上添加一些easing效果
friction-y number 0-1 层运动的摩擦量,实际上是在层上添加一些easing效果
origin-x number 鼠标输入的x原点,默认值是0.5。0会移动原点到页面的左边,1会移动原点到页面的右边。Mouse input only
origin-y number 鼠标输入的x原点,默认值是0.5。0会移动原点到页面的上边,1会移动原点到页面的下边。Mouse input only

  Data属性举例

  1. <ul id="scene"
  2. data-calibrate-x="false"
  3. data-calibrate-y="true"
  4. data-invert-x="false"
  5. data-invert-y="true"
  6. data-limit-x="false"
  7. data-limit-y="10"
  8. data-scalar-x="2"
  9. data-scalar-y="8"
  10. data-friction-x="0.2"
  11. data-friction-y="0.8"
  12. data-origin-x="0.0"
  13. data-origin-y="1.0">
  14. <li class="layer" data-depth="0.00"><img src="graphics/layer1.png"></li>
  15. <li class="layer" data-depth="0.20"><img src="graphics/layer2.png"></li>
  16. <li class="layer" data-depth="0.40"><img src="graphics/layer3.png"></li>
  17. <li class="layer" data-depth="0.60"><img src="graphics/layer4.png"></li>
  18. <li class="layer" data-depth="0.80"><img src="graphics/layer5.png"></li>
  19. <li class="layer" data-depth="1.00"><img src="graphics/layer6.png"></li>
  20. </ul>

复制代码

  构造函数方式举例

  1. var scene = document.getElementById(‘scene‘);
  2. var parallax = new Parallax(scene, {
  3. calibrateX: false,
  4. calibrateY: true,
  5. invertX: false,
  6. invertY: true,
  7. limitX: false,
  8. limitY: 10,
  9. scalarX: 2,
  10. scalarY: 8,
  11. frictionX: 0.2,
  12. frictionY: 0.8,
  13. originX: 0.0,
  14. originY: 1.0
  15. });

复制代码

  API示例

  1. var scene = document.getElementById(‘scene‘);
  2. var parallax = new Parallax(scene);
  3. parallax.enable();
  4. parallax.disable();
  5. // Useful for reparsing the layers in your scene if you change their data-depth value
  6. parallax.updateLayers();
  7. parallax.calibrate(false, true);
  8. parallax.invert(false, true);
  9. parallax.limit(false, 10);
  10. parallax.scalar(2, 8);
  11. parallax.friction(0.2, 0.8);
  12. parallax.origin(0.0, 1.0);

复制代码

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

  1. $(‘#scene‘).parallax();

复制代码

  带参数:

  1. $(‘#scene‘).parallax({
  2. calibrateX: false,
  3. calibrateY: true,
  4. invertX: false,
  5. invertY: true,
  6. limitX: false,
  7. limitY: 10,
  8. scalarX: 2,
  9. scalarY: 8,
  10. frictionX: 0.2,
  11. frictionY: 0.8,
  12. originX: 0.0,
  13. originY: 1.0
  14. });

复制代码

  jQuery API

  1. var $scene = $(‘#scene‘).parallax();
  2. $scene.parallax(‘enable‘);
  3. $scene.parallax(‘disable‘);
  4. $scene.parallax(‘updateLayers‘);
  5. $scene.parallax(‘calibrate‘, false, true);
  6. $scene.parallax(‘invert‘, false, true);
  7. $scene.parallax(‘limit‘, false, 10);
  8. $scene.parallax(‘scalar‘, 2, 8);
  9. $scene.parallax(‘friction‘, 0.2, 0.8);
  10. $scene.parallax(‘origin‘, 0.0, 1.0);

复制代码

  IOS
  如果如果你编写了一个原生的iOS项目,并希望在UIWebView中使用parallax.js,你需要按下面的步骤来实现它。

  UIWebView不会再自动接收deviceorientation事件,所以你的项目必须拦截gyroscope和reroute发出的事件。

  •   引入CoreMotion框架,#import ,并创建一个UIWebView的引用 @property(nonatomic, strong) IBOutlet UIWebView *parallaxWebView;。
  •   在app delegate中添加一个属性@property(nonatomic, strong) CMMotionManager *motionManager;。
  •   最后使用下面的代码来调用:
  1. self.motionManager = [[CMMotionManager alloc] init];
  2. if (self.motionManager.isGyroAvailable && !self.motionManager.isGyroActive) {
  3. [self.motionManager setGyroUpdateInterval:0.5f]; // Set the event update frequency (in seconds)
  4. [self.motionManager startGyroUpdatesToQueue:NSOperationQueue.mainQueue
  5. withHandler:^(CMGyroData *gyroData, NSError *error) {
  6. NSString *js = [NSString stringWithFormat:@"parallax.onDeviceOrientation({beta:%f, gamma:%f})", gyroData.rotationRate.x, gyroData.rotationRate.y];
  7. [self.parallaxWebView stringByEvaluatingJavaScriptFromString:js];
  8. }];
  9. }

复制代码

时间: 2024-10-06 05:29:21

Parallax.js|强大的javascript视觉差特效引擎的相关文章

jQuery炫酷3d背景视觉差特效

Smart3D是一款效果非常炫酷的jQuery图片背景视觉差特效插件.该插件将图片以层的形式排放,当鼠标滑过图片的时候,每一层的图片的运动速度各不相同,从而形成强烈的视觉差效果. 效果演示:http://www.htmleaf.com/Demo/201504051628.html 下载地址:http://www.htmleaf.com/jQuery/shijuecha/201504051627.html

Html5添加非常炫的图片3D背景视觉差特效插件教程

一.安装 bower install logos-distort 二.使用方法 <link href="assets/css/perspectiveRules.css" rel="stylesheet" /> <script src="js/1.11.0/jquery.min.js"></script> <script src="assets/js/jquery.logosDistort.min

Matter.js – 你不能错过的 2D 物理引擎

Matter.js 是一个 JavaScript 2D 刚体物理引擎的网页.Matter.Engine 模块包含用于创建和操作引擎的方法.这个引擎是一个管理更新和渲染世界的模拟控制器. Matter.js 目前是测试版本,这意味着 API 仍在开发中,可能偶尔会发生变化. 在线演示      源码下载 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发中很

原生JS和JQuery代码编写窗口捕捉函数和页面视觉差效果(scroll()、offsetTop、滚动监听的妙用)

想实现窗口滚动到一定位置时,部分网页的页面发生一些变化,但是手头没有合适的插件,所以就想到自己编写一个简易的方法, 想到这个方法要有很高的自由度和适应性,在这,就尽量的削减其功能,若有错误的地方或者更好的建议,请大家评论,一同探讨, 好了废话不多说,下面开始干活了! 首先,说一下我想实现的基本功能: 此方法需要有2个基本形参,,一个是我要监测的标签a,另一个是我要监测标签相对于哪个标签b做的距离检测. 当a和b的距离达到一定范围的时候,让网页局部发生一些变化效果,这是我们的预期. 以下是我的方法

jQuery和CSS3超酷全屏视觉差幻灯片特效

这是一款效果非常炫酷的jQuery和CSS3全屏视觉差幻灯片特效.该幻灯片采用半透明的遮罩层作为文字说明层.在幻灯片切换时,文字有动态放大的效果.图片和文字的移动形成了一种微妙的视觉差效果. 效果演示:http://www.htmleaf.com/Demo/201506162049.html 下载地址:http://www.htmleaf.com/jQuery/Slideshow-Scroller/201506162048.html

Swiper实现全屏视觉差轮播

Swiper作为当代流行的js框架,非常受到青睐,这里演示swiper在pc端全屏视觉轮播的效果,这也是pc端常用的一种特性 一  以教师节为主题的一个全屏轮播 1 首先加载插件,需要用到的文件有swiper.min.js和swiper.min.css文件以及jquery-1.11.3.min.js官网都有(可以下载完整的压缩文件) <link rel="stylesheet" href="css/swiper.min.css" > <script

hta+vbs+js+div+css (javascript是原生态的)

talbe是javascript动态生成的,根据你的sql语句来的,分页是vbs用数组来造的轮子,vbs这脚本虽然强大,却没有返回数据集的东东,数组来做简单的分页还是比较简单的,批量跟新呢?是上传execl来更新的,最好是用vba操作execl的话,直接在execl里修改了立马更新数据库,只是个小工具,目前还不是很强大不是很满意,慢慢做,局限hta不能跨平台只能windows,不能和硬件结合.优点调用webservies不需要考虑域的问题,做一个小巧强悍的工具还是比较方便的,因为hta直接双击就

10 款强大的JavaScript图表图形插件推荐

转自:http://www.iteye.com/news/24535 网上有很多用于绘制图表图形的免费JavaScript插件和图表库,这类插件大量出现的原因,一是人们不再依赖于Flash,二是浏览器和精密的计算使呈现实时数据变得容易,而且各种向量绘图技术像VML.SVG和Canvas的发展也使之成为可能. 本文推荐10款强大的绘制图表图形的JavaScript插件.其中一些插件需要主流浏览器的支持,而另外一些经过整合后,也能在不同的平台和老版本的浏览器上工作.有些工具是独立的框架,大部分支持常

10 个强大的JavaScript / jQuery 模板引擎推荐

模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档.由于在开发过程中,网站或应用程序的界面与数据实现分离,大大提升了开发效率,良好的设计也使得代码重用变得更加容易.本文整理了10 款基于JavaScript和jQuery的模板引擎,希望能对你的开发工作带来一些帮助. 1. NANO 最简单的jQuery模板引擎,完美实现对JSON的解析. 源码 / 演示 2. The "template" binding 该工具通过渲染模板将相关联的DOM元素组织到一起.