图片/图形

超酷3D多层图片视觉差互动jQuery特效

阿里云


这是一款使用 jQuery 和 CSS3 制作的超酷 3D 多层图片视觉差互动特效。该特效中使用嵌套 div 结构来制作 2 个不同的图片层,在用户移动鼠标时,两个图层会相应的 3D 旋转,形成视觉差效果。

HTML 结构

该视觉差特效的 HTML 结构如下:

也想出现在这里?联系我们
创客主机
  1. <div class="container">
  2.   <div class="moving-zone">
  3.     <div class="popup">
  4.       <img class="margin" src="img/1.jpg" width="100%">
  5.       <div class="moving-zone-2">
  6.           <div class="popup-2">
  7.         <img src="img/2.png" width="120%">
  8.           </div>
  9.       </div>
  10.     </div>
  11.   </div>
  12. </div>

CSS 样式

该视觉差特效的 CSS 样式非常简单。整个容器设置为 50%视口宽度,并居中显示。.moving-zone 是透视层,用于制作 3D 透视空间。.popup 和.popup-2 分别是 2 个图片层。

  1. .container {
  2.   width: 50%;
  3.   margin: 40px auto;
  4. }
  5. .moving-zone {
  6.     position: relative;
  7.     width:85%; height:985%;
  8.     margin: auto;
  9.     perspective: 800px;
  10. }
  11. .popup {
  12.     padding: 10px;
  13.     box-sizing: border-box;
  14.     cursor: pointer;
  15.     transform-style: preserve-3d;
  16. }
  17. .popup-2 {
  18.     position: absolute;
  19.     padding: 10px;
  20.     box-sizing: border-box;
  21.     cursor: pointer;
  22.     transform-style: preserve-3d;
  23.     left:20%; top:0% !important;
  24.     transform: translateZ(100px) !important;
  25. }
  26. .popup-2 img {
  27.     overflow: hidden;
  28. }

JavaScript

该视觉差特效使用 jQuery 代码来计算鼠标的位置,并根据鼠标的位置来相应的改变.popup 和.popup-2 的旋转角度。

  1. var moveForce = 30;
  2. var rotateForce = 20;
  3.  
  4. $(document).mousemove(function(e) {
  5.     var docX = $(document).width();
  6.     var docY = $(document).height(); 
  7.  
  8.     var moveX = (e.pageX - docX/2) / (docX/2) * -moveForce;
  9.     var moveY = (e.pageY - docY/2) / (docY/2) * -moveForce;
  10.  
  11.     var rotateY = (e.pageX / docX * rotateForce*2) - rotateForce;
  12.     var rotateX = -((e.pageY / docY * rotateForce*2) - rotateForce);
  13.  
  14.     $('.popup')
  15.         .css('left', moveX+'px')
  16.         .css('top', moveY+'px')
  17.         .css('transform', 'rotateX('+rotateX+'deg) rotateY('+rotateY+'deg)');
  18.  
  19.     $('.popup-2')
  20.         .css('right', moveX+'px')
  21.         .css('bottom', moveY+'px')
  22.         .css('transform', 'rotateX('-rotateX-'deg) rotateY('-rotateY-'deg)');
  23. });

超酷 3D 多层图片视觉差互动 jQuery 特效

已有 464 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!