前端学习之路之图片(魔方旋转)

103 阅读2分钟

前端学习之路之图片(魔方旋转)

前面实现了图片的轮播,同时实现了自动轮播图片.图片轮播的就是通过js监听通过改变css样式实现图片轮播的.改文章也是图片的轮播 不过是增加了一些css样式,是的旋转的时候更像是一个魔方

<div class="square">
        <ul class="s-img">
            <li><img src="../images/pic.png"></li>
            <li><img src="../images/pic2.png"></li>
            <li><img src="../images/pic3.png"></li>
            <li><img src="../images/pic4.png"></li>
            <li><img src="../images/pic2.png"></li>
            <li><img src="../images/pic3.png"></li>
        </ul>
    </div>
      <!-- 手动点击旋转 -->
    <div class="toc">
        <span class="img_1"></span>
        <span class="img_2"></span>
        <span class="img_3"></span>
        <span class="img_4"></span>
        <span class="img_5"></span>
        <span class="img_6"></span>
    </div>
.square{
            width: 200px;
            height: 200px;
            margin: 200px auto;
            margin-bottom: 100px;
        }
        ul{
            position: relative;
            transform-style: preserve-3d;
            transition: all .7s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            width: 100%;
            height: 100%;
        }
        li{
            position: absolute;
            top: 0;
            left: 0;
            list-style: none;
            width: 100%;
            height: 100%;
            border: 1px solid pink;
        }
        img{
            width: 200px;
            height: 200px;
        }
        
        /* 图片的子折叠板块,形成可以旋转的魔方 */
        ul li:nth-child(1) {
            transform: translateZ(100px);
        }
        ul li:nth-child(2) {
            transform: rotateY(180deg)  translateZ(0) ;
        }
        ul li:nth-child(3) {
            transform: rotateY(90deg) translateZ(100px);
        }
        ul li:nth-child(4) {
            transform: rotateY(-90deg) translateZ(100px);
        }
        ul li:nth-child(5) {
            transform: rotateX(90deg) translateZ(100px);
        }
        ul li:nth-child(6) {
            transform: rotateX(-90deg) translateZ(100px);
        }
        
        /* 用于点击方块的模式 */
        .img_1{
            background-image: url(../images/pic.png);
        }
        .img_2{
            background-image: url(../images/pic2.png);
        }
        .img_3{
            background-image: url(../images/pic3.png);
        }
        .img_4{
            background-image: url(../images/pic4.png);
        }
        .img_5{
            background-image: url(../images/pic2.png);
        }
        .img_6{
            background-image: url(../images/pic3.png);
        }
        span{
            display: inline-block;
            width: 45px;
            height: 30px;
            background-size: contain;
            border: 1px solid white;
        }
        .toc{
            width: 350px;
            margin: 0 auto;
        }
        /* 辅助JS块样式设置 */
        .square .img_1 {
            transform: translateZ(-100px);
        }
        .square .img_2 {
            transform: translateZ(-100px) rotateX(-90deg) ;
        }
        .square .img_3 {
            transform:  translateZ(-100px) rotateY(-90deg) ;
        }
        .square .img_4 {
            transform: translateZ(-100px) rotateY(90deg) ;
        }
        .square .img_5 {
            transform: translateZ(-100px) rotateX(-90deg) ;
        }
        .square .img_6 {
            transform: translateZ(-100px) rotateX(90deg) ;
        }
window.onload = function(){
  //toc目录设置
  var toc_img = document.querySelector('.toc');
  var square = document.querySelector('ul');
  var p_img = square.classList;
  var img_button = toc_img.querySelectorAll('span');
  var flage = '';
  // 每个板块添加点击事件
  img_button[0].onclick = function(e) {
      flage = img_button[0].className;
      square.setAttribute('class', flage);
  }
  img_button[1].onclick = function(e) {
      flage = img_button[1].className;
      square.setAttribute('class', flage);
  }
  img_button[2].onclick = function(e) {
      flage = img_button[2].className;
      square.setAttribute('class', flage);
  }
  img_button[3].onclick = function(e) {
      flage = img_button[3].className;
      square.setAttribute('class', flage);
  }
  img_button[4].onclick = function(e) {
      flage = img_button[4].className;
      square.setAttribute('class', flage);
  }
  img_button[5].onclick = function(e) {
      flage = img_button[5].className;
      square.setAttribute('class',flage);
  }
}