项目作者: baianat-experiments

项目描述 :
cubic photo gallery
高级语言: CSS
项目地址: git://github.com/baianat-experiments/3d-cube.git
创建时间: 2017-04-18T18:24:26Z
项目社区:https://github.com/baianat-experiments/3d-cube

开源协议:

下载


magic-cube

Image gallery from a deferent angle using ES6

examples

How to use

include necessary files

  1. <head>
  2. <link rel="stylesheet" href="dist/css/cube.css">
  3. </head>
  4. <body>
  5. ...
  6. <script type="text/javascript" src="dist/js/cube.js"></script>
  7. </body>

HTML markup

  1. <div class="cube-wrapper">
  2. <div class="cube" id="myCube">
  3. <div class="cube-light"></div>
  4. <div class="cube-top" style="background-image: url('assets/img/image-01.jpg')"></div>
  5. <div class="cube-bottom" style="background-image: url('assets/img/image-02.jpg')"></div>
  6. <div class="cube-left" style="background-image: url('assets/img/image-03.jpg')"></div>
  7. <div class="cube-right" style="background-image: url('assets/img/image-04.jpg')"></div>
  8. <div class="cube-front" style="background-image: url('assets/img/image-05.jpg')"></div>
  9. <div class="cube-back" style="background-image: url('assets/img/image-06.jpg')"></div>
  10. </div>
  11. </div>

Create new slider

  1. let myCube new Cube('#myCube');

custom open/close animation

you can create your custom classes for open/close state

naming classes and keyframes contestant is very important

  1. new Cube('#myCube', {
  2. openClass: 'is-magic',
  3. closeClass: 'is-unmagic',
  4. time: 3000
  5. });

in css file provide the animation for each side and for the cube itself

  1. @keyframes magicCube {
  2. 0% { transform: translate3d(0, 0, 0) rotateX(-20deg) rotateY(45deg); }
  3. 80% { transform: translate3d(0, -100px, 0) rotateX(0deg) rotateY((360 * 4)deg); }
  4. 100% {transform: translate3d(0, 0, 0) rotateX(0deg) rotateY((360 * 4)deg); }
  5. }
  6. @keyframes magicTop {
  7. 0% { transform: translate3d(0, -100px, 0) rotateX(90deg); }
  8. 60%, 80% { transform: translate3d(0, -200px, 0) rotateX(90deg); }
  9. 100% { transform: translate3d(-550px, 0, 0) rotateX(0); }
  10. }
  11. @keyframes magicBottom {
  12. 0% { transform: translate3d(0, 100px, 0) rotateX(90deg); }
  13. 60%, 80% { transform: translate3d(0, 200px, 0) rotateX(90deg); }
  14. 100% { transform: translate3d(550px, 0, 0) rotateX(0); }
  15. }
  16. @keyframes magicLeft {
  17. 0% { transform: translate3d(-100px, 0, 0) rotateY(-90deg); }
  18. 60%, 80% { transform: translate3d(-200px, 0, 0) rotateY(-90deg); }
  19. 100% { transform: translate3d(-330px, 0, 0) rotateY(0);}
  20. }
  21. @keyframes magicRight {
  22. 0% { transform: translate3d(100px, 0, 0) rotateY(-90deg); }
  23. 60%, 80% { transform: translate3d(200px, 0, 0) rotateY(-90deg); }
  24. 100% { transform: translate3d(330px, 0, 0) rotateY(0); }
  25. }
  26. @keyframes magicFront {
  27. 0% { transform: translate3d(0, 0, 100px) rotateY(0); }
  28. 60%, 80% { transform: translate3d(0, 0, 200px) rotateY(0); }
  29. 100% { transform: translate3d(110px, 0, 0) rotateY(0); }
  30. }
  31. @keyframes magicBack {
  32. 0% { transform: translate3d(0, 0, -100px) rotateY(-180deg); }
  33. 60%, 80% { transform: translate3d(0, 0, -200px) rotateY(-180deg); }
  34. 100% { transform: translate3d(-110px, 0, 0) rotateY(0); }
  35. }

License

MIT

Copyright (c) 2017 Baianat