前端小练习:案例4.3D图片旋转展示(旋转木马)

一.效果预览图

二.实现思路 

1.实现旋转木马效果的第一步是先准备好自己需要的图片,创建html文件

2.旋转木马的实现,关键点在3D形变和关键帧动画。

3.步骤,定义一个div使其居中,,把图片放进div盒子里,因为图片需要3D形变,所以要给div设置3D环境,给图片设置定位或者使用弹性布局使其在相对的位置,要控制图片一定要在div中,否则关键帧动画旋转的时候整体会是倾斜的,根据图片的数量,合理控制图像的旋转角度,(通常使用 360度/图片数量=需要旋转的角度),最后设置z轴的移动距离和关键帧动画。

三.相关代码 

<!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;
            perspective: 500000px;
            transform-style: preserve-3d;
        }
        .wp{
            width: 800px;
            height: 400px;
            perspective: 500000px;
            transform-style: preserve-3d;
            position: relative;
            margin: 200px auto;
            animation: xz 10s infinite linear;
        }
        img{
            width: 180px;
            height: 300px;
            position: absolute;
            left: 310PX;
        }
        .wp img:nth-child(1){
            transform: rotateY(0) translateZ(400px);
        }
        .wp img:nth-child(2){
            transform: rotateY(-30deg) translateZ(400px);
        }
        .wp img:nth-child(3){
            transform: rotateY(-60deg) translateZ(400px);
        }
        .wp img:nth-child(4){
            transform: rotateY(-90deg) translateZ(400px);
        }
        .wp img:nth-child(5){
            transform: rotateY(-120deg) translateZ(400px);
        }
        .wp img:nth-child(6){
            transform: rotateY(-150deg) translateZ(400px);
        }
        .wp img:nth-child(7){
            transform: rotateY(-180deg) translateZ(400px);
        }
        .wp img:nth-child(8){
            transform: rotateY(-210deg) translateZ(400px);
        }
        .wp img:nth-child(9){
            transform: rotateY(-240deg) translateZ(400px);
        }
        .wp img:nth-child(10){
            transform: rotateY(-270deg) translateZ(400px);
        }
        .wp img:nth-child(11){
            transform: rotateY(-300deg) translateZ(400px);
        }
        .wp img:nth-child(12){
            transform: rotateY(-330deg) translateZ(400px);
        }
        @keyframes xz{
            0%{
                transform: rotateX(-10deg);
            }
            100%{
             transform: rotateX(-10deg) rotateY(360deg);
            }
        }
    </style>
</head>
<body>
    <div class="wp">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
         <img src="./image/wallhaven-pkgkkp.png" alt="">
    </div>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/66447.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IPO观察丨困于门店扩张的KK集团,还能讲好增长故事吗?

KK集团发起了其IPO之路上的第三次冲击。 近日&#xff0c;KK集团更新了招股书&#xff0c;继续推进港交所上市进程&#xff0c;此前两次上市搁置后终于有了新动向。从更新内容来看&#xff0c;KK集团招股书披露了公司截至2023年一季度的最新业绩&#xff0c;交出一份不错的“成…

【ES】笔记-简化对象写法箭头函数及声明特点

简化对象写法&箭头函数及声明特点 简化对象写法箭头函数及声明特点 简化对象写法 ES6 允许在大括号里面&#xff0c;直接写入变量和函数&#xff0c;作为对象的属性和方法.这样的书写更加简介 声明变量和和函数 let name南昌大学;let changefunction(){console.log(我可以改…

Vulkan 绘制显示设计

背景 众所周知&#xff0c;Vulkan是个跨平台的图形渲染API&#xff0c;为了友好地支持跨平台&#xff0c;Vulkan自然也抽象出了很多接口层去对接各个操作系统&#xff0c;抹平系统间的差异&#xff0c;Swap Chains即为WSI。 其本质上是一种图像队列&#xff0c;此队列会按顺序…

ZyjDataLink 全量MySQL同步程序 - 开发过程 01

开发过程由本人从 架构设计 到 代码实现 独立完成&#xff0c;通过该博客记录分享开发经验 ZyjDataLink 当前的目标是做到 MySQL大数据量的快速同步&#xff0c;后期希望扩展的功能 高度可操作性&#xff0c;融入增量数据库同步&#xff0c;跨数据库同步 ZyjDataLink 需求分析…

【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC,拥挤距离与皮尔逊系数法结合实现回归与分类预测

【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC&#xff0c;拥挤距离与皮尔逊系数法结合实现回归与分类预测 思路 考虑拥挤距离指标与PCC皮尔逊相关系数法相结合&#xff0c;对回归或分类数据进行降维&#xff0c;通过SVM支持向量机交叉验证得到平均指标&#xff0c;来…

RobotFramework的安装过程及应用举例

一、安装python3.8.0 二、安装wxPython C:\>pip install -U wxPython Collecting wxPythonObtaining dependency information for wxPython from https://files.pythonhosted.org/packages/00/78/b11f255451f7a46fce2c96a0abe6aa8b31493c739ade197730511d9ba81a/wxPython-…

【Docker】Docker私有仓库的使用

目录 一、搭建私有仓库 二、上传镜像到私有仓库 三、从私有仓库拉取镜像 一、搭建私有仓库 首先我们需要拉取仓库的镜像 docker pull registry 然后创建私有仓库容器 docker run -it --namereg -p 5000:5000 registry 这个时候我们可以打开浏览器访问5000端口看是否成功&…

RPC原理与Go RPC详解

文章目录 RPC原理与Go RPC什么是RPC本地调用RPC调用HTTP调用RESTful API net/rpc基础RPC示例基于TCP协议的RPC使用JSON协议的RPCPython调用RPC RPC原理 RPC原理与Go RPC 什么是RPC RPC&#xff08;Remote Procedure Call&#xff09;&#xff0c;即远程过程调用。它允许像调用…

侯捷C++高级编程(下)

对于1个类要么像指针要么像函数 主题1:转换函数 转换函数 /** 1. 转换函数没有返回类型* 2. 转换函数一般需要加上const*/ class Fraction { public:Fraction(int num,int den1):m(num),n(den){cout<<"Fraction(int num,int den1): m/n "<< m/n<&…

软件测试的49种方法

1. α测试_Alpha测试 α测试&#xff0c;英文是Alpha testing。又称Alpha测试。 Alpha测试是由一个用户在开发环境下进行的测试&#xff0c;也可以是公司内部的用户在模拟实际操作环境下进行的受控测试&#xff0c;Alpha测试不能由该系统的程序员或测试员完成。 在系统开发接近…

一文看懂Apipost接口自动化使用方法

随着项目研发进程的不断推进&#xff0c;软件功能不断增多&#xff0c;对于软件测试的要求也越来越高。为了提高测试效率和减少测试成本&#xff0c;许多软件测试团队借助于自动化测试工具来优化测试流程。Apipost也提供了自动化测试工具&#xff0c;在本文中&#xff0c;我们将…

JVM深入 —— JVM的体系架构

前言 能否真正理解JVM的底层实现原理是进阶Java技术的必由之路&#xff0c;Java通过JVM虚拟机的设计使得Java的延拓性更好&#xff0c;平台无关性是其同时兼顾移动端和服务器端开发的重要特性。在本篇文章中&#xff0c;荔枝将会仔细梳理JVM的体系架构和理论知识&#xff0c;希…

中科驭数亮相DPU峰会,分享HADOS软件生态实践和大数据计算方案,再获评“匠芯技术奖”

又是一年相逢时&#xff0c;8月4日&#xff0c;第三届DPU峰会在北京开幕&#xff0c;本届峰会由中国通信学会指导&#xff0c;江苏省未来网络创新研究院主办&#xff0c;SDNLAB社区承办&#xff0c;以“智驱创新芯动未来”为主题&#xff0c;沿袭技术创新、生态协同的共创效应&…

开源数据库Mysql_DBA运维实战 (名词解释)

SQL&#xff08;Structured Query Language 即结构化查询语言&#xff09; SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统&#xff0c;SQL语言由IBM开发。 SQL语言分类&#xff1a; DDL语句 数据库定义语言&#xff1a;数据库、表、视图、索引、存储过程…

单片机、嵌入式的大神都平时浏览什么网站?

我平时也喜欢收藏些有关嵌入式的学习网站&#xff0c;压箱底的记录翻出来总结下 1、综合网站 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili//B站是一个有很多好资料的网站 https://github.com/nhivp/Awesome-Embedded //github开源项目网站&#xff0c;这个是我找到嵌入式综合相关的…

24届华东理工大学近5年自动化考研院校分析

今天给大家带来的是华东理工大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、华东理工大学 学校简介 华东理工大学原名华东化工学院&#xff0c;1956年被定为全国首批招收研究生的学校之一&#xff0c;1960年起被中共中央确定为教育部直属的全国重点大学&#…

yolo txt 转 labelme json 格式

talk is cheap show me the code! def convert_txt_to_labelme_json(txt_path, image_path, output_dir, image_fmt.jpg):# txt 转labelme json# 将yolo的txt转labelme jsontxts glob.glob(os.path.join(txt_path, "*.txt"))for txt in txts:labelme_json {versio…

Centos7离线安装MySQL8

1、下载MySQL https://downloads.mysql.com/archives/community/ 2、下载完毕后&#xff0c;上传到Centos&#xff0c;解压 tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 3、逐条执行安装命令 rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm rpm -ivh …

容器——2.Collection 子接口之 List

文章目录 2.1. Arraylist 和 Vector 的区别?2.2. Arraylist 与 LinkedList 区别?2.2.1. 补充内容:双向链表和双向循环链表2.2.2. 补充内容:RandomAccess 接口 2.3 ArrayList 的扩容机制 2.1. Arraylist 和 Vector 的区别? ArrayList 是 List 的主要实现类&#xff0c;底层使…

利用Ettercap进行DNS欺骗攻击

一、域名系统&#xff08;DNS&#xff09; 域名系统DNS是Internet上使用的命名系统&#xff0c;用于将系统名称转换为人们易于使用的IP地址。域名系统是基于互联网的前身ARPANET开发的&#xff0c;在ARPANET时代&#xff0c;主机名和对应的IP地址是通过HOST.TXT文件集中管理的…