图片/图形

CSS3炫酷3D图片视觉差jQuery特效

阿里云


这是一款使用 jQuery 和 CSS3 制作的效果非常炫酷的 3D 图片视觉差特效。该视觉差特效模拟放风筝效果,以 9 只小鸟的图片作为风筝。这个界面可以随鼠标左右倾斜,8 个风筝也会以不同的速度进行运动,组成强烈的 3D 视觉差效果。

HTML 结构

该视觉差效果的所有 HTML 元素都是通过 js 代码动态添加到<body>元素中。

也想出现在这里?联系我们
创客主机
  1. <script src='js/stopExecutionOnTimeout.js?t=1'></script>
  2. <script src="js/jquery-2.1.1.min.js"></script>
  3. <script src='js/Sprite3D.js'></script>

CSS 样式

该视觉差特效的 CSS 样式非常简单,只是简单的在 CSS 中设置了各个元素的背景图像。

  1. body,html{
  2.   width: 100%;
  3.   height: 100%;
  4.   overflow: hidden;
  5.   background: black;
  6. }
  7. #bg1{
  8.   background: url(img/bg1.jpg) center center;
  9.   background-size: contain;
  10. }
  11. #bg2{
  12.   background: url(img/bg2.png) no-repeat;
  13.   background-size: contain;
  14. }
  15. #cage{background: url(img/cage.png);}
  16. #man{background: url(img/man.png);}
  17. #bird1{background: url(img/bird1.png);}
  18. #bird2{background: url(img/bird2.png);}
  19. #bird3{background: url(img/bird3.png);}
  20. #bird4{ background: url(img/bird4.png);}
  21. #bird5{background: url(img/bird5.png);}
  22. #bird6{background: url(img/bird6.png);}
  23. #bird7{background: url(img/bird7.png);}
  24. #bird8{background: url(img/bird8.png);}
  25. #bird9{background: url(img/bird9.png);}

JAVASCRIPT

该插件依赖于 Sprite3D.js 插件,它可以制作出立方体效果。在 js 代码中,在 init()方法中,首先制作了一个立方体容器。

  1. container = Sprite3D.stage().appendChild(Sprite3D.box( 0, 0, 0, "cube" ));

然后往这个立方体容器中添加需要的 HTML DOM 元素。同时设置各个元素的尺寸和 transform 原点。

  1. bg1 = container.appendChild(Sprite3D.create("bg1").size(ww,wh).y(-wh/2).x(-ww/2).z(0).update());
  2. bg2 = container.appendChild(Sprite3D.create("bg2").size(ww/1.2,ww/12.17).y(wh/2-ww/11).x(-ww/2.4).z(60).update());
  3.  
  4. cage = container.appendChild(Sprite3D.create("cage").size(617,679).y(-309).x(-340).z(30).update());
  5. man = container.appendChild(Sprite3D.create("man").size(617,679).y(-309).x(-340).z(80).update());
  6.  
  7. bird1 = container.appendChild(Sprite3D.create("bird1").size(617,679).y(-309).x(-340).z(80).transformOrigin(157,390).rotationX(30).update());
  8. bird2 = container.appendChild(Sprite3D.create("bird2").size(617,679).y(-309).x(-340).z(80).transformOrigin(157,390).rotationX(30).update());
  9. bird3 = container.appendChild(Sprite3D.create("bird3").size(617,679).y(-309).x(-340).z(80).transformOrigin(157,390).update());
  10. bird4 = container.appendChild(Sprite3D.create("bird4").size(617,679).y(-309).x(-340).z(80).transformOrigin(157,390).rotationX(30).update());
  11. bird5 = container.appendChild(Sprite3D.create("bird5").size(617,679).y(-309).x(-330).z(80).transformOrigin(157,395).rotationX(30).update());
  12.  
  13. bird6 = container.appendChild(Sprite3D.create("bird6").size(617,679).y(-309).x(-330).z(80).transformOrigin(414,368).update());
  14. bird7 = container.appendChild(Sprite3D.create("bird7").size(617,679).y(-309).x(-330).z(80).transformOrigin(417,374).update());
  15. bird8 = container.appendChild(Sprite3D.create("bird8").size(617,679).y(-309).x(-330).z(80).transformOrigin(419,372).update());
  16. bird9 = container.appendChild(Sprite3D.create("bird9").size(617,679).y(-309).x(-340).z(80).transformOrigin(425,374).update());

接着为 body 添加 mousemove 事件监听,以根据鼠标的位置来旋转整个界面。

  1. $("body").mousemove(function move(e){
  2.   x = e.clientX;
  3.   y = e.clientY;
  4.  
  5.   if(x<ww/2){
  6.     x = Math.abs(x-ww/2);
  7.     container.rotationY(-x/90).update();
  8.   }
  9.  
  10.   if(x>ww/2){
  11.     x = x-ww/2;
  12.     container.rotationY(x/90).update();
  13.   }
  14.   if(y<wh/2){
  15.     y = Math.abs(y-wh/2);
  16.     container.rotationX(y/80).update();
  17.   }
  18.   if(y>wh/2){
  19.     y = y-wh/2;
  20.     container.rotationX(-y/80).update();
  21.   }
  22. });

CSS3 炫酷 3D 图片视觉差 jQuery 特效

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

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

发表回复

热销模板

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

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