×

基于JS的3D切换特效

作者:yinqiong2018.02.04来源:Web前端之家浏览:979评论:0
关键词:JQueryJSdom

基于JS的3D切换特效。直接上代码;

一个父容器,里面包裹一个ul,然后用li存放5张自己喜欢的图片

下面是css3部分:

<style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .box{
            width: 300px;
            height: 300px;
            margin: 100px auto;
            position: relative;
        }
        ul{
            width: 100%;
            height: 100%;
            box-sizing: border-box;
            position: relative;
            transform-style: preserve-3d;
            transition: all 1s;
        }
        ul li{
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
            background-size: 100% 100%;
        }

        li:nth-child(1){
            background-image: url("3.jpg");
            transform: translateZ(150px);
        }
        li:nth-child(2){
            background-image: url("4.jpg");
            transform: rotateX(90deg) translateZ(150px);
        }
        li:nth-child(3){
            background-image: url("5.jpg");
            transform: rotateX(180deg) translateZ(150px);
        }
        li:nth-child(4){
            background-image: url("6.jpg");
            transform: rotateX(270deg) translateZ(150px);
        }
        .arrow-left,.arrow-right{
            width: 50px;
            height: 50px;
            background-color: #ff254a;
            border-radius: 5px;
            text-align: center;
            cursor: pointer;
        }
        .arrow-left{
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: -50px;
            line-height: 50px;
        }
        .arrow-right{
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            right: -50px;
            line-height: 50px;
        }
    </style>

里面主要用到css3的 transform3d旋转 和 transition的过度动画。“transform-style: preserve-3d;”这句话一定要写在动画的父容器里面,否则3d效果看不出来。

下面贴出js部分:

<script>
     var btnleft = document.querySelector(".arrow-left");
     var btnright = document.querySelector(".arrow-right");
     var ul = document.querySelector("ul");
 
     var index = 0;
     btnleft.addEventListener("click",function () {
         index++;
         ul.style.transform = "rotateX("+(index * 90)+"deg)";
     })
     btnright.addEventListener("click",function () {
         index--;
         ul.style.transform = "rotateX("+(index * 90)+"deg)";
     })
</script>

里面主要就是操作点击事件和动态控制照片旋转效果。

最后,大家可以新建一个html文件,把上面3个部分直接拷贝,可以直接在浏览器运行。

温馨提示:本文作者系yinqiong ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
http://jiangweishan.com/article/JS234234234FDSFDS.html

网友评论文明上网理性发言 已有0人参与

发表评论:

最新留言

  • 访客

    这个可以用,可能是你程序的问题吧...

  • 访客

    能不能原创,网上一找全是这段。这没效果,复制也先自己测测好不????...

  • 访客

    谢谢楼主。。。。。。。。...

  • weblft

    表示不想加班,但是很难!!!...

  • 前端菜鸟

    也不全是我总结的哟,只是学习,大部分是来自大神的杰作。...

  • admin

    感觉不像前端菜鸟,学术很专啊,加油!...

  • admin

    可以的,底部有申请连接的。...

  • BudgetVM优惠码

    朋友交换链接吗...

首页|JavaScript|HTML|HTML4|HTML5|CSS3|开发工具|性能优化|移动开发|前端教程|性能优化|开发工具|酷站欣赏|UI设计|前端教程

Copyright © 2013-2018 Web前端之家(www.jiangweishan.com) 版权所有 All Rights Reserved.
粤ICP备12067512号-1

Copyright Your WebSite.Some Rights Reserved.

Powered By Z-BlogPHP 1.5.2 Zero