2023html5怎么实现三维效果

 所属分类:web前端开发

 浏览:202次-  评论: 0次-  更新时间:2023-03-02
描述:更多教程资料进入php教程获得。 html5实现三维效果的方法:1、创建一个HTML示例文件;2、通过“.img {width: 50px;height: 50px;margin:...
更多教程资料进入php教程获得。

html5实现三维效果的方法:1、创建一个HTML示例文件;2、通过“.img {width: 50px;height: 50px;margin: 0 auto;transform-style: preserve-3d;}”属性实现三维立体效果;3、通过“@-webkit-keyframes rotate {...}”属性实现动画效果即可。

本教程操作环境:Windows10系统、HTML5&&CSS3版、DELL G3电脑

html5怎么实现三维效果?

HTML5特效~3D立方体旋转

先欣赏一下该特效的最终效果

该特效是基于Css3的一些新特性拼接而成.主要用到了hover,transform和@keyframe属性.下面简述一下这三个属性的作用.

hover

效果:当鼠标移到元素上时会展现你定义的hover的样式

使用方法:假定我们有一个类,名为mystyle.修改它的css样式的方式是.mystyle{}.修改它的css hover样式的方式是.mystyle:hover{}.

transform

效果:对元素进行旋转、缩放、移动或倾斜

使用方法:传入旋转rotate(angle),缩放scale(x,y),移动translate(x,y),倾斜skew(angle)的参数进行属性的修改

@keyframe

效果:实现动画效果

使用方法:@keyframe 后+动画名{from:初始状态;to:末状态}

代码解析

<style>    /*实现立体效果*/
    .img {
        width: 50px;
        height: 50px;
        margin: 0 auto;
        transform-style: preserve-3d;        
        /*设置动画播放样式:动画对象 播放速度 时间 播放次数*/
        animation: rotate linear 20s infinite;
    }    /*实现动画效果*/
    @-webkit-keyframes rotate {                /*sofari chrome*/
        from {
            transform: rotateX(0deg) rotateY(0deg);
        }
        to {
            transform: rotateX(360deg) rotateY(360deg);
        }
    }    /*图片样式*/
    .pic{
        width: 200px;
        height: 200px;
        transform: rotateY(0deg) translateZ(100px);
    }</style>
登录后复制

接下来是特效实现的完整代码

<div class="wrap">
    <!--部署内外层图片-->
    <div class="cube">
        <!--前面图片 -->
        <div class="out_front">
            <img src="https://img.zzsucai.com/202303/02/KH1VJ209205100013.jpeg" class="pic">
        </div>
        <!--后面图片 -->
        <div class="out_back">
            <img src="https://img.zzsucai.com/202303/02/N4ubF55613100014.jpg" class="pic">
        </div>
        <!--左面图片 -->
        <div class="out_left">
            <img src="https://img.zzsucai.com/202303/02/EsiiW196688100015.jpg" class="pic">
        </div>
        <!--右面图片 -->
        <div class="out_right">
            <img src="https://img.zzsucai.com/202303/02/ViBf8359064100016.jpg" class="pic">
        </div>
        <!--上面图片 -->
        <div class="out_top">
            <img src="https://img.zzsucai.com/202303/02/FV2Lp880063100016.jpg" class="pic">
        </div>
        <!--下面图片 -->
        <div class="out_bottom">
            <img src="https://img.zzsucai.com/202303/02/rqATm567329100018.jpg" class="pic">
        </div>

        <!--小正方体 -->
        <span class="in_front">
                <img src="https://img.zzsucai.com/202303/02/Y8VBc157319100019.jpg" class="in_pic">
            </span>
        <span class="in_back">
                 <img src="https://img.zzsucai.com/202303/02/fFlgY642087100020.jpg" class="in_pic">
            </span>
        <span class="in_left">
                <img src="https://img.zzsucai.com/202303/02/pyCn88534100022.jpg" class="in_pic">
            </span>
        <span class="in_right">
                <img src="https://img.zzsucai.com/202303/02/MqTQz420258100023.jpg" class="in_pic">
            </span>
        <span class="in_top">
                <img src="https://img.zzsucai.com/202303/02/UYNQS517606100026.jpg" class="in_pic">
            </span>
        <span class="in_bottom">
                <img src="https://img.zzsucai.com/202303/02/hMiLs482539100028.jpg" class="in_pic">
            </span>

    </div>
    <style>        /*最外层容器样式*/
        .wrap {
            width: 100px;
            height: 100px;
            margin: 150px;
            position: relative;
        }        /*得到立方体效果*/
        .cube {
            width: 50px;
            height: 50px;
            margin: 0 auto;
            transform-style: preserve-3d;            /*设置动画播放样式:动画对象 播放速度 时间 播放次数*/
            animation: rotate linear 20s infinite;
        }        /*动画旋转的方式*/
        /*得到动画效果*/
        @-moz-keyframes rotate {                     /*firefox*/
            from {
                transform: rotateX(0deg) rotateY(0deg);
            }
            to {
                transform: rotateX(360deg) rotateY(360deg);
            }
        }
        @-webkit-keyframes rotate {                /*sofari chrome*/
            from {
                transform: rotateX(0deg) rotateY(0deg);
            }
            to {
                transform: rotateX(360deg) rotateY(360deg);
            }
        }
        @-o-keyframes rotate {                    /*opera*/
            from {
                transform: rotateX(0deg) rotateY(0deg);
            }
            to {
                transform: rotateX(360deg) rotateY(360deg);
            }
        }        /*每张图片的样式*/
        .cube div {
            position: absolute;
            width: 200px;
            height: 200px;
            opacity: 0.8;            /*过渡效果*/
            transition: all .4s;
        }        /*定义所有图片样式*/
        .pic {
            width: 200px;
            height: 200px;
        }

        .cube .out_front {
            transform: rotateY(0deg) translateZ(100px);
        }

        .cube .out_back {
            transform: translateZ(-100px) rotateY(180deg);
        }

        .cube .out_left {
            transform: rotateY(-90deg) translateZ(100px);
        }

        .cube .out_right {
            transform: rotateY(90deg) translateZ(100px);
        }

        .cube .out_top {
            transform: rotateX(90deg) translateZ(100px);
        }

        .cube .out_bottom {
            transform: rotateX(-90deg) translateZ(100px);
        }        /*定义小正方体样式*/
        .cube span {
            display: block;
            width: 100px;
            height: 100px;
            position: absolute;
            top: 50px;
            left: 50px;
        }

        .cube .in_pic {
            width: 100px;
            height: 100px;
        }

        .cube .in_front {
            transform: rotateY(0deg) translateZ(50px);
        }

        .cube .in_back {
            transform: translateZ(-50px) rotateY(180deg);
        }

        .cube .in_left {
            transform: rotateY(-90deg) translateZ(50px);
        }

        .cube .in_right {
            transform: rotateY(90deg) translateZ(50px);
        }

        .cube .in_top {
            transform: rotateX(90deg) translateZ(50px);
        }

        .cube .in_bottom {
            transform: rotateX(-90deg) translateZ(50px);
        }        /*鼠标移入后样式*/
        .cube:hover .out_front {
            transform: rotateY(0deg) translateZ(200px);
        }

        .cube:hover .out_back {
            transform: translateZ(-200px) rotateY(180deg);
        }

        .cube:hover .out_left {
            transform: rotateY(-90deg) translateZ(200px);
        }

        .cube:hover .out_right {
            transform: rotateY(90deg) translateZ(200px);
        }

        .cube:hover .out_top {
            transform: rotateX(90deg) translateZ(200px);
        }

        .cube:hover .out_bottom {
            transform: rotateX(-90deg) translateZ(200px);
        }
    </style>
</div>
登录后复制

推荐学习:《HTML5视频教程》

以上就是html5怎么实现三维效果的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: 三维,html5,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!