制作一个简单3D相册

article/2025/10/12 12:43:16

- 用到的点:

  • 旋转

    • 2D 旋转
      transform: rotate(值deg) deg 角度的单位

    • 3D 旋转

      transform:rotateX rotateY roteteZ
      如果让一个块实现3D效果,必须做两件事:
      1、在要实现3D效果的块上 加transform-style:preserve-3D (声明)
      2、在要实现3D效果的块的父元素上加一个镜头的距离
      一般范围为(800~1200px)
      用法:perspective:800px~1200px;
      平移 :transform:translateX(0px) translateY() translateZ()

    背景图
    background:url(‘图片的路径’)
    什么都不设置的话,图片小于边框大小,会出现平铺现象, 要使图片不平铺的话,

    background:url(‘图片的路径’) no- repeat(不平铺)
    repeat-x 只沿X轴平铺
    repeat-y 只沿Y轴平铺

    background-size:200px 500px; 设置背景图大小 但是可能会使图片失帧。

效果图:
在这里插入图片描述

    <!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>/* 去掉浏览器自动的边距 */*{margin: 0;padding: 0;}/* 整个背景设置为全黑 */body{background-color: #000;}/* 设置照片的大小,及居中到浏览器 */.wrap{width: 133px;height: 200px;margin: 200px auto; /* 添加一个3D镜头 */perspective:1200px; }/* 设置里面所有照片的大小 及相对位置*/.content{height: 100%;position: relative;/* 声明 3D样式 */transform-style:preserve-3d;transform: rotateX(-12deg);}/* 设置各个单独照片的大小、相对位置、阴影等样式 */.content>div{width:100%;height: 100%;position: absolute;top: 0;left: 0;box-shadow: 1px 1px 10px rgb(248, 142, 216);border-radius: 7px;/* 添加一个倒影 */-webkit-box-reflect: below 10px;}/* 添加一个底 并设置样式 */.content .di{width: 800px;height: 800px;position:absolute;top: 100%;left: 50%;margin-left: -400px;margin-top: -400px;border-radius: 400px;transform: rotateX(90deg);background:-webkit-radial-gradient(center center , 400px 400px ,rgba(247, 60, 175,1), rgba(0,0,0,0) );}</style></head><body><div class="wrap"><div class="content"><p class="di"></p></div></div></body><script src="jquery.min.js"></script><script>  // 入口函数  $(function(){// 调用方法creatediv();let xdeg=-12;let ydeg=0;// 添加一个鼠标移动事件$(document).mousedown(function(event){//鼠标按下,打开开关let flag = true;   //记录鼠标按下时刻 X轴 Y轴的 坐标let stratx = event.pageX||event.clientX;let straty = event.pageY||event.clientY;// 添加鼠标移动事件$(document).mousemove(function(ev){// 当开关为 ture 时 生效if(flag){//读取鼠标当前的位置let movex = ev.pageX||ev.clientX;let movey = ev.pageY||ev.clientY;// 计算旋转的角度 xdeg = xdeg + (movey-straty)*0.1;ydeg = ydeg + (movex-stratx)*0.1;// 旋转 平移 各个照片$(".content").css({"transform":"rotateX("+xdeg+"deg) rotateY("+ydeg+"deg)"});// 初始化 鼠标的位置stratx = movex;straty = movey;}//当鼠标放开时,结束事件}).mouseup(function(){flag = false;});});// 创建一个方法 导入所有的图片 并设置样式function creatediv(){// 利用for 循环 依次导入11 张图片   //这里图片的命名是有顺序的 分别为 1.jpf 2.jpg 3.jpg...for(let i=1;i<=11;i++){let $div=$("<div></div>");// 计算旋转的角度let r = 360/11*(i-1);let time = (i-1)*0.3;// 导入图片//  第一个样式 图片全部重叠在中心$div.css({"background":"url(img/"+i+".jpg)",});// 将所有图片导入到 div 标签中$(".content").append($div);//  setTimeout(function() 设置样式的发生顺序   //  这里是第一个样式发生后 100ms  后再发生第二个setTimeout(function(){// 第二个样式  图片均匀分散。$div.css({"transform":"rotateY("+r+"deg) translateZ(400PX)","transition":"1s "+time+"s",},100)});}}});</script></html>

http://chatgpt.dhexx.cn/article/r8fuiHZH.shtml

相关文章

html结合css实现浏览器展示3D相册

最近写了一个在浏览器展示3D相册效果&#xff0c;通过html文件结合css实现。 1.html详细代码如下&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>3D相册</title> <script src"../js/jquer…

python3d相册源代码_js和CSS3炫酷3D相册展示

js和CSS3炫酷3D相册展示 *{margin:0;padding:0;} body{background:url(img/bg.jpg);width:100%;height:100%;overflow:hidden;}; h1{width:277;height:76px;margin:30px auto 0;} .xc-3D{width:100%;height:300px;background:#fff;margin-top:100px;position:relative;transfor…

three.js 制作3D相册

效果图&#xff1a; 由于博客限制了图片大小&#xff0c;动画质量不太好&#xff0c; 在线效果&#xff1a; https://static-mp-df787464-d77c-4180-83c3-6e7add40073e.next.bspapp.com/ 参考了three.js 官方代码 <!-- 源码下载地址 https://pan.baidu.com/s/1AVB71Aj…

3d相册

页面脚本 我的图片是是本地的&#xff0c;大家可以放上自己喜爱的图片 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>3d相册</title></head><style>#box1 {/* 宽 */width: 300px;/* 高 */height: …

HTML实现3D相册

今天&#xff0c;我给大家分享一个3D相册的代码 废话不说先上效果图&#xff1a; 先新建两个文件夹&#xff0c;一个叫css&#xff0c;另一个叫img&#xff0c;如下图&#xff1a; 先新建一个文本文档&#xff0c;输入下面的代码&#xff1a; <!DOCTYPE html> <html…

教你零基础制作3D旋转相册(送给那个她~)

3D立体相册&#xff1f;   是的&#xff0c;相信大家或多或少的会在一些地方看到某些程序员用代码给自己女朋友写3D立体相册&#xff0c;那么你会不会也想自己手动敲出那些炫酷的代码呢&#xff1f;   那你是找对地方了。废话不多说&#xff0c;今天为大家分享利用html实现…

【3D相册】零基础完成3D相册并配上背景音乐

文章目录 一、前言二、准备工作1、新建文件夹2、准备素材对于图片的处理对于音乐的处理 三、代码工作1、python处理6张图片1.1代码运行1.2 放入背景图片 2、写html文件2.1 更换音乐素材 3、运行main.html 四、推荐阅读 一、前言 帮助好哥们整的一个小相册&#xff0c;给他写个…

斐波那契数列求和公式

斐波那契数列指的是这样一个数列&#xff1a;1、1、2、3、5、8、13、21、……    这个数列从第三项开始&#xff0c;每一项都等于前两项之和。它的通项公式为:(见下图)&#xff08;又叫“比内公式”&#xff0c;是用无理数表示有理数的一个范例。&#xff09; 斐波那契数列求…

斐波那契数列之python(5种方法)

斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列、因数学家列昂纳多斐波那契&#xff08;Leonardoda Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样一个数列&#xff1a;1、1、2、…

斐波那契数列(C/C++)

目录 背景介绍 解法1&#xff1a;非数组非递归 解法2&#xff1a;数组非递归 解法3&#xff1a;非数组递归 解法4&#xff1a;数组递归 背景介绍 斐波那契数列&#xff0c;又称黄金分割数列&#xff0c;指的是这样一个数列&#xff1a;0、1、1、2、3、5、8、13、21、34、…

关于斐波那契数列通项公式证明以及推广

在我们中学的时候老师都会举一个著名的兔子繁殖的例子&#xff1a;一般而言&#xff0c;兔子在出生两个月后&#xff0c;就有繁殖能力&#xff0c;一对兔子每个月能生出一对小兔子来。如果所有兔子都不死&#xff0c;那么一年以后可以繁殖多少对兔子&#xff1f;而这个问题就是…

斐波那契数列的四种解法

题目描述 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样一个数列&a…

斐波那契数列通项公式的求法

以下两种方法其实是一样的 1、方法一 其实所有人都知道T(n) T(n-1) T(n-2), T(1) T(2)1,T(n)也是一个斐波那契数列&#xff0c;求解时间复杂度的本质也就是求数列通项&#xff0c;结果MB的一个通项就把我难住了&#xff0c;只好回来google一下&#xff0c;把高中数学用的求…

【算法】斐波那契数列通项公式

特征方程和通项公式 如果数列 a n a_n an​的递推公式&#xff1a; a n c 1 a n − 1 c 2 a n − 2 a_nc_1a_{n-1}c_2a_{n-2} an​c1​an−1​c2​an−2​------(1) 根据待定系数法&#xff0c;假设 a n − x a n − 1 y ( a n − 1 − x a n − 2 ) a_n-xa_{n-1}y(a_{n-1…

斐波那契数列通项公式的推导证明----举一反三

斐波那契数列通项公式的推导证明----举一反三 1-前言2-斐波那契2-1-什么是斐波那契2-2-通项公式的证明2-3-举一反三 1-前言 2021年5月20号的那天&#xff0c;有对象的都忙着约会秀恩爱&#xff0c;而我这样的单身狗&#xff0c;只能自己学习沉淀自己&#xff0c;为梦想而奔波&a…

七种方式求斐波那契(Fibonacci)数列通项

一&#xff1a;递归实现   使用公式f[n]f[n-1]f[n-2]&#xff0c;依次递归计算&#xff0c;递归结束条件是f[1]1&#xff0c;f[2]1。 二&#xff1a;数组实现   空间复杂度和时间复杂度都是0(n)&#xff0c;效率一般&#xff0c;比递归来得快。 三&#xff1a;vector<in…

响应式 - 基于尺寸的响应式内边距

前言 为了衬托一个响应式宽度的图像元素&#xff0c;需要添加相对的内边距。如果使用静态的宽度内边距&#xff0c;图像内边距在较小的浏览器窗口中可能会显得过大&#xff0c;从而与其他附近元素相互挤压&#xff0c;甚至可能将图像挤出屏幕。 准备工作 理解盒模型属性的计算…

响应式 - 基于min-width和max-width属性的响应式布局

前言 响应式布局的很多解决方案都相当复杂&#xff0c;但是本节中的方法却非常简单。该方法通过在3个浮动元素上设置min-width和max-width属性来实现响应式布局。只要采用CSS中这个非常简单的响应式布局特性&#xff0c;就能够适应移动设备和不同尺寸的计算机屏幕。 准备工作 …

【愚公系列】2023年07月 WPF+上位机+工业互联 002-WPF布局控件

文章目录 前言一、WPF布局控件1.无边框设计2.理解布局2.1 WPF的布局处理2.1 布局原则2.3 布局过程 3.布局控件3.1 Grid控件3.1.1 属性3.1.2 案例 3.2 StackPanel控件3.2.1 属性3.2.2 案例 3.3 DockPanel3.3.1 属性3.3.2 案例 3.4 WrapPanel3.4.1 属性3.4.2 案例 3.5 UniformGri…