使用CSS和HTML实现3D图片环绕效果

使用CSS和HTML实现3D图片环绕效果

在本篇博客中,将介绍如何使用HTML和CSS实现一个3D图片环绕效果。这个效果不仅具有视觉吸引力,而且具有高度的互动性,鼠标悬停时动画会暂停。接下来将一步步讲解这个效果的实现过程。

1. 效果

在这里插入图片描述

2. 页面结构与布局

首先,我们来看一下HTML的基本结构。该效果的核心是一个<section>元素,它包含了多个图片的<div>,每个div中都设置了不同的背景图片。

HTML代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>3D图片环绕效果</title>
</head>
<body><section><div style="background-image:url(https://www.toopic.cn/public/uploads/small/1658044412448165804441259.jpg)"></div><div style="background-image: url(https://www.toopic.cn/public/uploads/small/1658044416540165804441665.jpg);"></div><div style="background-image: url(https://www.toopic.cn/public/uploads/small/170429677313517042967732.jpg);"></div><div style="background-image:url(https://www.toopic.cn/public/uploads/small/1638860413795163886041313.jpg)"></div><div style="background-image: url(https://www.toopic.cn/public/uploads/small/1658043148532165804314881.jpg);"></div><div style="background-image:url(https://www.toopic.cn/public/uploads/small/1638860379965163886037984.jpg)"></div></section>
</body>
</html>

说明:

  • <section>: 作为容器,用来包裹所有的图片元素。
  • <div>: 每个div通过内联样式设置背景图片,这些图片将最终展示在3D环绕效果中。

3. CSS样式

接下来,我们为这个页面添加样式,主要是通过CSS3中的transformanimationperspective属性来实现3D旋转效果。

CSS代码:

* {margin: 0;padding: 0;
}body {display: flex;justify-content: center;align-items: center;height: 100vh;/* 设置透视点 */perspective: 1000px;
}/* 定义绕Y轴转动的动画 */
@keyframes RotateY {0% {transform: rotateY(0);}100% {transform: rotateY(360deg);}
}section {position: relative;display: flex;justify-content: center;align-items: center;width: 350px;height: 250px;background-image: url(../../images/小胖子1.jpg);background-size: cover;/* 让元素维持3D结构 */transform-style: preserve-3d;/* 调用绕Y轴旋转的动画 */animation: RotateY 20s linear infinite;
}section div {position: absolute;width: 350px;height: 250px;background-position: center;background-size: cover;border-radius: 15px;
}div:nth-child(1) {transform: translateZ(400px);
}div:nth-child(2) {transform: rotateY(60deg) translateZ(400px);
}div:nth-child(3) {transform: rotateY(120deg) translateZ(400px);
}div:nth-child(4) {transform: rotateY(180deg) translateZ(400px);
}div:nth-child(5) {transform: rotateY(240deg) translateZ(400px);
}div:nth-child(6) {transform: rotateY(300deg) translateZ(400px);
}/* 鼠标悬浮时,动画暂停 */
section:hover {animation-play-state: paused;
}

说明:

  1. 全局样式

    • * { margin: 0; padding: 0; }: 清除默认的内外边距,确保布局的整洁。
    • body { display: flex; justify-content: center; align-items: center; height: 100vh; }: 使用flex布局,将图片环绕效果居中显示,并设置100vh让整个页面充满视窗。
  2. 透视效果(perspective)

    • perspective: 1000px; 设置透视点,创造3D深度效果。这决定了用户观察3D场景的距离,值越大,透视效果越弱;值越小,透视感越强。
  3. 3D旋转动画

    • @keyframes RotateY: 这是一个绕Y轴旋转的动画,旋转周期为0%到100%,完成一圈360度的旋转。
    • animation: RotateY 20s linear infinite;: 给section应用动画,20秒旋转一圈,匀速且无限循环。
  4. 3D效果

    • transform-style: preserve-3d;: 保持3D空间效果,确保元素在旋转过程中不会失去深度感。
    • translateZ(400px);: 将每个div向前移动400px,使它们在3D空间中看起来不在同一平面上。
    • rotateY(60deg), rotateY(120deg), 等:给每个div设置不同的Y轴旋转角度,使它们在环绕中均匀分布。
  5. 交互效果

    • section:hover { animation-play-state: paused; }: 当鼠标悬浮在section上时,动画会暂停,用户可以细细观赏每一张图片。

4. 总结

通过本文的介绍,我们实现了一个具有3D效果的图片环绕旋转动画。整个过程主要依赖于CSS3transformperspectivekeyframes等属性,简单易懂但视觉效果非常出彩。

你可以根据自己的需求调整旋转速度、图片的数量、环绕的半径等,从而创造出更多样化的3D视觉体验。如果你想让你的网页更加生动有趣,这种3D环绕动画效果无疑是一个很好的选择。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为HCIP实战课程十一】OSPF网络NBMA网络解决方案,网络工程师

上节我们讲解了DR DBR 选举,每台设备可以学到全网路由,但是通信是有问题的 DR BDR的选举是基于接口的,而不是基于路由器的 一、OSPF路由通信问题 R5虽然可以学到全网的OSPF路由,但是R5无法ping通44.1.1.1 原因是R5到达R4 lo0的下一跳是10.1.1.4, 而R5和R4直连无法ping通…

数码准备记录

1.数据结构 常见的数据结构包括数组、链表、栈、队列、树&#xff08;如二叉树、B树、B树&#xff09;、图等 2.队列和栈的区别 队列是一种先入先出的数据结构&#xff0c;即最先加入的元素被最先移除&#xff1b; 栈是一种后进后出的数据结构&#xff0c;即最后加入的元素…

linux tar 打包文件去掉文件所在路径

一、准备目录 /root/tmp/images /root/tmp/images2 执行命令打包目录/root/tmp/images 到 /root/tmp/images.tar.gz 再解压到/root/tmp/images2 cd /root/tmp/images && tar -cvzf images.tar.gz * && mv images.tar.gz /root/tmp/ tar -C /root/tmp/image…

JDK17常用新特性

目前国内大部分开发人员都是在使用jdk8&#xff0c;甚至是jdk6&#xff0c;但是随着jdk的更新迭代&#xff0c;jdk8我觉得可能就会慢慢的淡出舞台&#xff0c;随着目前主流框架最新版推出明确说明了不再支持jdk8&#xff0c;也促使我不得不抓紧学习了解一波jdk17的新特性&#…

多线程-初阶(2)BlockingQueueThreadPoolExecutor

学习目标&#xff1a; 熟悉wait和notify的线程休眠和启动 熟悉多线程的基本案例 1.单例模式的两种设置模式:懒汉模式和饿汉模式 2.阻塞队列(生产者消费者模型) 3.线程池 4.定时器 1.wait和notify 由于线程之间是抢占式执⾏的, 因此线程之间执⾏的先后顺序难以预知. 但是…

【消息队列】Kafka从入门到面试学习总结

国科大学习生活&#xff08;期末复习资料、课程大作业解析、大厂实习经验心得等&#xff09;: 文章专栏&#xff08;点击跳转&#xff09; 大数据开发学习文档&#xff08;分布式文件系统的实现&#xff0c;大数据生态圈学习文档等&#xff09;: 文章专栏&#xff08;点击跳转&…

人工智能的核心技术之机器学习

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 人工智能&#xff08;AI&#xff09;核心技…

使用DataX同步hive数据到MySQL

目录 1、组件环境 2、安装datax 2.1、下载datax并解压 3、安装datax-web 3.0、下载datax-web的源码&#xff0c;进行编译 3.1、在MySQL中创建datax-web元数据 3.2、安装data-web 3.2.1执行install.sh命令解压部署 3.2.1、手动修改 datax-admin配置文件 3.2.2、手动修改…

「Ubuntu」文件权限说明(drwxr-xr-x)

我们在使用Ubuntu 查看文件信息时&#xff0c;常常使用 ll 命令查看&#xff0c;但是输出的详细信息有些复杂&#xff0c;特别是 类似与 drwxr-xr-x 的字符串&#xff0c;在此进行详细解释下 属主&#xff1a;所属用户 属组&#xff1a;文件所属组别 drwxr-xr-x 7 apps root 4…

Pytorch基础:设置随机种子

相关阅读 Pytorch基础https://blog.csdn.net/weixin_45791458/category_12457644.html?spm1001.2014.3001.5482 有时候&#xff0c;如果需要代码在多个运行中具有可重复性&#xff0c;可以通过以下方式来设置随机种子&#xff1a; import torch import numpy as np import r…

【亲测可行】最新ubuntu搭建rknn-toolkit2

文章目录 🌕结构图(ONNX->RKNN)🌕下载rknn-toolkit2🌕搭建环境🌙配置镜像源🌙conda搭建python3.8版本的虚拟环境🌙进入packages目录安装依赖库🌕测试安装是否成功🌕其它🌙rknn-toolkit2🌙rknn_model_zoo🌙关于部署的博客发布本文的时间为2024.10.13…

【进阶OpenCV】 (11)--DNN板块--实现风格迁移

文章目录 DNN板块一、DNN特点二、DNN函数流程三、实现风格迁移1. 图像预处理2. 加载星空模型3. 输出处理 总结 DNN板块 DNN模块是 OpenCV 中专门用来实现 DNN(Deep Neural Networks,深度神经网络) 模块的相关功能&#xff0c;其作用是载入别的深度学习框架(如 TensorFlow、Caf…

【微信小程序_11_全局配置】

摘要:本文介绍了微信小程序全局配置文件 app.json 中的常用配置项,重点阐述了 window 节点的各项配置,包括导航栏标题文字、背景色、标题颜色,窗口背景色、下拉刷新样式以及上拉触底距离等。通过这些配置可实现小程序窗口外观的个性化设置,提升用户体验。 微信小程序_11_全…

如何成为 Rust 核心贡献者?Rust 开发的核​​心是什么?Rust 重要技术专家揭秘

10 月 17 - 18日&#xff0c;由 GOSIM 开源创新汇主办、CSDN 承办的 GOSIM CHINA 2024 将在北京盛大启幕。作为 GOSIM 开源年度大会的第三届盛会&#xff0c;本次活动邀请了 60 多位国际开源专家&#xff0c;汇聚了来自全球百余家顶尖科技企业、知名高校及开源社区的技术大咖、…

回溯法与迭代法详解:如何从手机数字键盘生成字母组合

在这篇文章中&#xff0c;我们将详细介绍如何基于手机数字键盘的映射&#xff0c;给定一个仅包含数字 2-9 的字符串&#xff0c;输出它能够表示的所有字母组合。这是一个经典的回溯算法问题&#xff0c;适合初学者理解和掌握。 问题描述 给定一个数字字符串&#xff0c;比如 …

python基础路径的迁移

本人未安装anaconda或pycharm等&#xff0c;仅安装了某个python环境&#xff0c;因此以下方法仅针对基础python环境的迁移&#xff0c;不确保其他软件或插件正常运行 第一步将原python路径的整个文件夹剪切到新的路径下 第二步修改系统环境变量&#xff0c;将原来的python路径…

php 生成随机数

记录&#xff1a;随机数抽奖 要求&#xff1a;每次生成3个 1 - 10 之间可重复&#xff08;或不可重复&#xff09;的随机数&#xff0c;10次为一轮&#xff0c;每轮要求数字5出现6次、数字4出现3次、…。 提炼需求&#xff1a; 1&#xff0c;可设置最小数、最大数、每次抽奖生…

鸿蒙--商品列表

这里主要利用的是 List 组件 相关概念 Scroll:可滚动的容器组件,当子组件的布局尺寸超过父组件的视口时,内容可以滚动。List:列表包

AI+若依框架day02

项目实战 项目介绍 帝可得是什么 角色和功能 页面原型 库表设计 初始AI AIGC 提示工程 Prompt的组成 Prompt练习 项目搭建 点位管理 需求说明 库表设计

浏览器中使用模型

LLM 参数越来越小&#xff0c;使模型跑在端侧成为可能&#xff0c;为什么要模型跑在端侧呢&#xff0c;首先可以节省服务器的算力&#xff0c;现在 GPU 的租用价格还是比较的高的&#xff0c;例如租用一个 A10 的卡1 年都要 3 万多。如果将一部分算力转移到端侧通过小模型进行计…