189 8069 5689

怎么使用CSS3实现一个3D相册-创新互联

这篇文章给大家分享的是有关怎么使用CSS3实现一个3D相册的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联主要从事网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务卫东,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

布局

直接看html布局:

      
          
               
                
                
                
                                                                                                                                

样式

大容器

最外层的大容器根据实际情况定义样式即可。

    .my-container {        
        width: 800px;
        height: 500px;
        margin: 20px auto;
    }

舞台元素

perspective属性用来激活一个3D空间,使其子元素都会获得透视效果(使用了3D变换的元素,此实例中也就是相册容器元素)。

    .photo-wrap {
        perspective: 800px;
        width: 800px;
    }

相册容器

相册容器的transform-style: preserve-3d;样式,表示所有子元素在3D空间中呈现。

    .container {
        width: 800px;
        height: 500px;
        margin: 0 auto;
        position: relative;
        transform-style: preserve-3d;
    }

单个元素

    .img {
        width: 200px;
        height: 118px;
        line-height: 118px;
        text-align: center;
        position: absolute;
        top: 160px;
        left: 300px;
        box-shadow: 0 0 20px rgba(0, 0, 0, 0.9) inset;
        background: pink;
    }

现在浏览器看看效果:

怎么使用CSS3实现一个3D相册

右上图可以看出,现在每张图片都固定在同一个位置。很明显不是我们想要的效果。但是想要达到我们预期的效果,要怎么改变呢?

现在这些图片都在容器的最中心点以平面的形式展现的,要想形成一个圆形,就要用到旋转属性(因为要绕着Y轴旋转,所以是rotateY)了。

这里一共有9张图,所以按360/9=40度为单位来分别对每张图进行旋转。

    .img01 {
        transform: rotateY(0deg);
    }
    .img02 {
        transform: rotateY(40deg);
    }
    .img03 {
        transform: rotateY(80deg);
    }
    .img04 {
        transform: rotateY(120deg);
    }
    .img05 {
        transform: rotateY(160deg);
    }
    .img06 {
        transform: rotateY(200deg);
    }
    .img07 {
        transform: rotateY(240deg);
    }
    .img08 {
        transform: rotateY(280deg);
    }
    .img09 {
        transform: rotateY(320deg);
    }

增加旋转之后,再看看效果:

怎么使用CSS3实现一个3D相册

我们发现这些图片不在一个平面了,但是都挤在了一起,我们试着把每张图片都向自己的前方(translateZ)移动300像素,看看会发生什么。

    .img01 {
        transform: rotateY(0deg) translateZ(300px);
    }
    .img02 {
        transform: rotateY(40deg) translateZ(300px);
    }
    .img03 {
        transform: rotateY(80deg) translateZ(300px);
    }
    .img04 {
        transform: rotateY(120deg) translateZ(300px);
    }
    .img05 {
        transform: rotateY(160deg) translateZ(300px);
    }
    .img06 {
        transform: rotateY(200deg) translateZ(300px);
    }
    .img07 {
        transform: rotateY(240deg) translateZ(300px);
    }
    .img08 {
        transform: rotateY(280deg) translateZ(300px);
    }
    .img09 {
        transform: rotateY(320deg) translateZ(300px);
    }

 增加旋转和移动之后的效果:

怎么使用CSS3实现一个3D相册

 至此,就已经达到我们预期的效果了。把每个图片标签加上喜欢的照片,就OK啦!

动画

想要让这个相册动起来,加一个动画就好了。

    @keyframes rotateY360 {
        from {
            transform: rotateY(0deg);
        }
        to {
            transform: rotateY(360deg);
        }
    }

然后给"相册容器"container元素添加动画属性:

 animation: rotateY360 15s ease-in-out infinite;

最终,大功告成:

怎么使用CSS3实现一个3D相册

感谢各位的阅读!关于“怎么使用CSS3实现一个3D相册”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网页题目:怎么使用CSS3实现一个3D相册-创新互联
文章分享:http://cdxtjz.cn/article/cooepg.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。