视差效果的实际应用

简介: 用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


目录
相关文章
|
数据可视化 前端开发 搜索推荐
数字孪生可视化开发技术(ThingJS)学习笔记
数字孪生可视化开发技术(ThingJS)学习笔记
1106 0
|
人工智能 自动驾驶 机器人
ICLR 2024:模型选择驱动的鲁棒多模态模型推理
【2月更文挑战第24天】ICLR 2024:模型选择驱动的鲁棒多模态模型推理
351 1
ICLR 2024:模型选择驱动的鲁棒多模态模型推理
|
算法
蓝桥杯算法竞赛第一周题型总结
蓝桥杯算法竞赛第一周题型总结
266 0
|
4月前
|
安全 网络安全 开发工具
报错解决:git clone git@github.com: Permission denied (publickey)权限拒绝问题
本文详解Git克隆GitHub仓库时出现“Permission denied (publickey)”错误的解决方法。问题源于SSH身份验证失败,常见于未配置SSH密钥或未添加公钥至GitHub。提供两种方案:一是临时使用HTTPS协议克隆,快速便捷;二是长期配置SSH密钥对,一劳永逸。涵盖密钥生成、SSH Agent启动、公钥添加及连接验证全流程,助开发者高效解决问题,提升开发效率。
1510 0
|
存储 算法 文件存储
探秘文件共享服务之哈希表助力 Python 算法实现
在数字化时代,文件共享服务不可或缺。哈希表(散列表)通过键值对存储数据,利用哈希函数将键映射到特定位置,极大提升文件上传、下载和搜索效率。例如,在大型文件共享平台中,文件名等信息作为键,物理地址作为值存入哈希表,用户检索时快速定位文件,减少遍历时间。此外,哈希表还用于文件一致性校验,确保传输文件未被篡改。以Python代码示例展示基于哈希表的文件索引实现,模拟文件共享服务的文件索引构建与检索功能。哈希表及其分布式变体如一致性哈希算法,保障文件均匀分布和负载均衡,持续优化文件共享服务性能。
|
存储 运维 Cloud Native
数据库的未来发展趋势
【8月更文挑战第27天】数据库的未来发展趋势
949 4
|
缓存 安全 定位技术
国外HTTP代理如何解决账号关联问题?
跨境电商面临多账号关联难题,可能导致平台限制或封禁。HTTP代理成为解决方案,提供独立IP避免账号关联,确保地理位置符合平台要求,实现IP隔离,增强安全性和隐私。通过代理,每个账户在不同环境中操作,减少被平台检测为违规的风险,同时防止黑客攻击,保障商家销售和品牌声誉。
|
架构师 关系型数据库 数据建模
合初学者的PostgreSQL相关书籍
合初学者的PostgreSQL相关书籍
371 2
|
SQL 关系型数据库 数据库
左连接和右连接的区别?
左连接和右连接的区别?
1008 0
|
Web App开发 Java 数据库
Java三大器之监听器(Listener)的工作原理和代码演示
    现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。
5162 0