利用CSS 3的3D属性及动画属性实现旋转相册

直接发车

 

我们首先创建一个最外层容器, id名字自定义,我们这里设置的是 div id=”main”

容器里面我们用列表添加全部图片

<body>

    <div id="main">

        <ul>

            <li><img src="./img/123.png" ></li>

            <li><img src="./img/123.png" ></li>

            <li><img src="./img/123.png" ></li>

            <li><img src="./img/123.png" ></li>

            <li><img src="./img/123.png" ></li>

            <li><img src="./img/123.png" ></li>

        </ul>

    </div>

</body>

 

1.接下来我们写CSS属性,首先我们简单的去除一下默认样式

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        *{ margin:0; padding:0;}

        ul{ list-style: none;}

        img{ display: block;}

2.创建一个最外层容器div id=“main”  id里面的名字可以自定义

我们给最外层容器先添加宽高,参考边框,整体居中,景深,和景深基点位置top

宽高自己根据情况设置,

Perspective这个属性离屏幕多远的距离去观察元素,值越大幅度越小。

perspective-origin: 景深-基点位置,观察元素的角度。

                    值:top bottom left right

 

#main{border: 1px black solid; margin: 0 auto;width: 500px; height: 300px; perspective: 1000px; perspective-origin: top;}

 

3. 给外层容器里面的列表添加宽高,定位,和animation动画效果时间,重复次数,动画name,3D效果

Position:relative 相对定位

Animation:这里写的是复合写法 ;

10s指的是动画运动时间

Linear指的是动画运动形式(匀速)

  Infinite指的是运动次数(无限次数)

  Move没有具体含义,这是只是这个逐帧动画运动的名字,名字可以自定义。

  Transform-style:preserve-3d 指的是产生一个3d空间(只要是立体的效果就必须添加这个属性)

#main ul {width: 340px; height: 240px; position: relative; left: 50%; top: 0; margin-left:-170px ; animation: 10s linear infinite move; transform-style: preserve-3d;}

4.我们给第三条的属性设置一个逐帧动画

  逐帧动画:会把整个运动过程,划分成100份。0%-100%

Move就是上面我们给这个逐帧动画起的一个名字

  Transform:rotateY()绕Y轴旋转多少度 单位是deg

 

@keyframes move {

            0%{transform: rotateY(0);}

            100%{transform: rotateY(360deg);}

 4.给列表里面的子元素添加定位(定位在刚刚我们设置的容器里面的具体位置)

   然后我们给列表的每一个子元素设置具体旋转的角度和位移位置

   TranslateZ()在Z轴位移的数值,如果不添加的话就会全部聚集在中心,达不到我们想要的效果。

 

#main ul li{position: absolute; left: 0; top: 100px;}

 

        #main ul li:nth-of-type(1){transform: rotateY(0deg) translateZ(300px);}

        #main ul li:nth-of-type(2){transform: rotateY(60deg) translateZ(300px);}

        #main ul li:nth-of-type(3){transform: rotateY(120deg) translateZ(300px);}

        #main ul li:nth-of-type(4){transform: rotateY(180deg) translateZ(300px);}

        #main ul li:nth-of-type(5){transform: rotateY(240deg) translateZ(300px);}

        #main ul li:nth-of-type(6){transform: rotateY(300deg) translateZ(300px);}

5. 最后当鼠标放到整个容器上面时出现整体旋转360°效果

 

#main:hover ul {transform: rotateY(360deg);}

 

 

最终效果图:

                                                                                                 

                                                                                                  逆战班202

原文地址:https://www.cnblogs.com/leiyuhang/p/12347284.html

时间: 2024-09-28 06:18:10

利用CSS 3的3D属性及动画属性实现旋转相册的相关文章

容易忘记的css属性和动画属性

动画属性 @keyframes 关键帧 --> animation 活泼 (配合使用) transform 变换 --> transition 过渡 (配合使用) 1.animation animation : name,完成时间,速度曲线,延迟时间,播放次数,轮流反向播放动画 animation : name,5s,linear,infinite 属性作用介绍 animation-name 规定需要绑定到选择器的 keyframe 名称. animation-duration 规定完成动画所

解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果

解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果 一.前言 最初还是在抖音上看到可以使用简单地代码实现炫酷的网页效果的,但是想要找到可以运行的代码还是比较困难的,最近突然想起就在网上汇总了一些这样的代码. 二.3D效果代码 2.1.旋转相册 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>旋转相

CSS3中动画属性transform、transition和animation

Transform:变形 在网页设计中,CSS被习惯性的理解为擅长表现静态样式,动态的元素必须借助于javascript才可以实现,而CSS3的出现改变了这一思维方式.CSS3除了增加革命性的创新功能外,还提供了对动画的支持,可以用来实现旋转.缩放.平移.扭曲和过渡效果等等,这些功能再一次证明了CSS3功能的强大和无限潜能. CSS3实现元素变形的基础来源于新增的transform属性,该属性可用于实现元素的旋转.缩放.平移.扭曲等效果.目前webkit内核支持-webkit-transform

CSS动画属性性能详细介绍

CSS动画属性会触发整个页面的重排relayout.重绘repaint.重组recomposite Paint通常是其中最花费性能的,尽可能避免使用触发paint的CSS动画属性,这也是为什么我们推荐在CSS动画中使用 webkit-transform: translateX(3em) 的方案代替使用 left: 3em ,因为left会额外触发layout与paint,而webkit-transform只触发整个页面composite div { -webkit-animation-durat

如何制作css3的3d动画——以骰子旋转为例,详解css3动画属性

首先先来看两个用css3实现的炫酷的3d动画效果 1 2 3 4 5 6 你没看错,这个炫酷的效果都是用css3实现的. 下面是动画实现所需要用到的几个css3属性. 1.perspective:用来实现一个3d的场景 写3D效果的第一步是要创建一个3D场景,即索要实现效果的模块.这里用到了 perspective 属性和 perspective-origin 属性. perspective:用来定义3d动画距离浏览器的距离,单位是(px). perspective-origin:效果渲染的视角

Css3之高级-7 Css动画(概述、关键帧、动画属性)

一.动画概述 动画概念 - 过渡属性只能模拟动画效果 - animation 属性可以制作类似 Flash 动画 - 通过关键帧控制动画的每一步 - 使元素从一种样式逐渐变化为另一种样式 - 实现复杂的动画效果 - 浏览器兼容性 - 最新版本支持良好 - Chrome 和 Safari 需要前缀 -webkit- - FireFox 需要前缀 -moz- - Opera 需要前缀 -o- 动画示例 - 声明动画 - 创建一个已命名的动画 - 使用 @keyframes 声明动画的关键帧 - 为元

bootstrap学习之利用CSS属性pointer-events禁用表单控件

参考链接: CSS3 pointer-events:none应用举例及扩展 首先pointer-events在除去SVG中的应用只有两个值:AUTO | NONE pointer-events:none 该属性可以让应用此属性的元素都会变成“真空”,比如:一个a连接上面覆盖一个div,当该div的css属性中有该属性时,该div就像不存在一样,可以直接点击到下方的a标签 这是一个很神奇的属性,Bootstrap就是利用这个属性,实现禁用控件的效果. Bootstrap中实现禁用效果有两个方法:

[ css 动画 animation ] animation新增动画属性的实例演示

<!DOCTYPE html> <html lang='zh-cn'> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>[ animation ] 新增动画属性的实例演示</title> <meta http-equiv='description' content='this

css背景与动画属性

background: background-origin属性规定background-position属性相对于什么位置来定位,而background-clip 属性规定背景的绘制区域,这两个要注意区分. background-image: url(images/red.jpg); background-repeat: no-repeat; background-origin: content-box; background-position: center center;background