视差效果的实际应用

简介: 用JS实现跟鼠标的互动效果,图片向着鼠标移动的相反方向转动。可以想象一下,Z轴上从远到近,有三张背景透明的图(从屏幕正方看,三张图重叠,看上去就是一张图)然后,让他们在 X轴 或者 Y轴转动,就形成了视差效果。

视差效果的实际应用



在实际开发中,应用一些微交互、视差效果,可以让页面更加生动。如下面的

例子:


20181115185347457.gif


这个例子中运行了3D transform 的相关知识。具体细节如下分析。


1、切图


将psd稿上的这个区域切成如下图的3块图片,方便在页面上进行叠加、


20181115185449871.png


2、布局


给三张图片设置不一样的translateZ(translateZ的值越小,元素大小越小,因为元素远去,我们眼睛看到的就会变小),这样三层图片就形成了远近的层次效果,否则都在一个平面上,就没有了视差效果,如下:


20181115185740854.gif


(缺少了层次效果,就没有了视差效果)

html布局代码:


<div class="banner-row move-row" style="transform-style: preserve-3d;">
         <div class="layer right-image" style="transform: translateZ(50px);">
        <img src="images/index/br4_img1.png" />
       </div>
       <div class="layer right-image" style="transform: translateZ(100px);">
        <img src="images/index/br4_img2.png" />
       </div>
       <div class="layer right-image" style="transform: translateZ(150px);">
        <img src="images/index/br4_img3.png" />
       </div>
      </div>


3、JS


用JS实现跟鼠标的互动效果,图片向着鼠标移动的相反方向转动。可以想象一下,Z轴上从远到近,有三张背景透明的图(从屏幕正方看,三张图重叠,看上去就是一张图)然后,让他们在 X轴 或者 Y轴转动,就形成了视差效果。


20181113134953675 (1).png


主要js如下:


var w = $(window).width(), h = $(window).height();
 function move(t) {
  var moveX = (t.pageX / w - .5) * (-25) || 10, moveY = -(t.pageY / h - .5) * (-20) || 10;
  var n = "rotateX(" + moveY + "deg) rotateY(" + moveX + "deg) ";
  return n;
 }
 $(".left-header").on("mousemove", function(e) {
  var n = move(e);
  $(".move-row").css("transform", n);
 });
 $(".move-row").on("mousemove", function(e) {
  var n = move(e);
  $(this).css("transform", n);
 });


参考:


https://codepen.io/agelber/pen/wAgzI


https://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/comment-page-7/#comment-389111


目录
相关文章
|
3月前
|
Web App开发 存储 前端开发
如何在 Chrome 中使用纯 CSS 创建视差滚动效果
如何在 Chrome 中使用纯 CSS 创建视差滚动效果
38 0
墨刀实现区域内滚动效果
墨刀实现区域内滚动效果
|
6月前
墨刀实现滚动效果
墨刀实现滚动效果
84 0
|
前端开发
HTML+CSS实现——精美视差效果图
本篇文章,主要讲解一下如何创建一个精美视差效果图
157 0
HTML+CSS实现——精美视差效果图
|
前端开发 JavaScript
经典网页设计:25个应用视差滚动的单页网站
  有许多有趣的网站类型,其中之一是视差技术,也被称为视差滚动(Parallax Scrolling)。在网页设计中,视差滚动是当下流行的网页设计技术,通过让多层背景以不同的速度或者不同的方向移动形成 3D 运动效果,有很强的视觉冲击力。
1322 0
|
前端开发 JavaScript 容器
滚动视差?CSS 不在话下
滚动视差?CSS 不在话下
144 0
滚动视差?CSS 不在话下
|
容器 前端开发 JavaScript