- 用到的点:

  • 旋转

    • 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>

制作一个简单3D相册相关推荐

  1. 使用solidworks2018制作一个简单的装配体

    这两天学习使用solidworks2018制作一个简单的装配体. 估计大多数像我一样的初学者都想最快速度制作一个装配体来感受一下solidworks的强大. 那么今天我把自己做的第一个装配体的步骤分享 ...

  2. 使用 Flutter 制作一个简单的笑话生成器应用程序

    在本教程中,我将向您展示如何使用 Flutter 制作一个简单的笑话生成器应用程序 对于这个项目,我们将从 RESTful API 获取数据 API的链接: 随机笑话 对于这个项目,我不会关注应用程序 ...

  3. 实例学习SSIS(一)--制作一个简单的ETL包

    http://www.cnblogs.com/tenghoo/archive/2009/10/archive/2009/10/archive/2009/10/16/ssis_lookup.html 导 ...

  4. python计算器教程,用Python程序制作一个简单的计算器

    用Python程序制作一个简单的计算器 在此示例中,您将学习创建一个简单的计算器,该计算器可以根据用户的输入进行加,减,乘或除. 要理解此示例,您应该了解以下Python编程主题: 通过函数创建简单计 ...

  5. 32位mips运算器logisim_大神教你制作一个简单的16位CPU

    如何制作一个简单的16位CPU,首先我们要明确CPU是做什么的,想必各位都比我清楚,百度的资料也很全..... 如果想要制作一个CPU,首先得明白下计算机的组成结构(或者计算机的替代品,因为并不是只有 ...

  6. (译)如何使用GameCenter制作一个简单的多人游戏教程:第一部分

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

  7. 数字信号 fft c源码_如何制作一个简单的人体动态识别微信小程序(附源码)

    知乎小白第一次写专栏,还请多指教. 先放成果. GitHub源码: lrioxh/HAR-applet-of-Wechat​github.com b站演示视频: 居然不需要服务器?!如何制作一个简单的 ...

  8. 用计算机制作动画,如何使用制作工具制作一个简单的Flash动画-电脑自学网

    怎么制作Flash动画?通过Adobe Flash我们可以制作出非常有趣好看的动画,也可以制作一键简单的小动画,下面给大家介绍如何使用制作工具制作一个简单的Flash动画. 操作方法: 1.打开fla ...

  9. 制作一个简单的Chrome extensions并发布到应用商店

    制作一个简单的Chrome extensions并发布到应用商店 制作一个简单的Chrome extensions并发布到谷歌商店 一个简单的ShowTime extension 注:工具推荐使用VS ...

最新文章

  1. linux中配置jmeter环境变量,linux java 和jmeter 环境变量配置文件笔记(原)
  2. 为什么CRM WebClient UI每次点了回车都会触发到后台的roundtrip
  3. 关闭mina服务_如何彻底关闭MINA客户端
  4. jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...
  5. 获取当前项目的根目录的方法
  6. 画时序图软件 TimeGen 3.2 TimingDesigner 9.103 AndyTiming
  7. 【体系结构】shared pool的个人理解
  8. mysql服务启动失败
  9. scrapy框架学习(三)Spiders
  10. 阿里云如何查看服务器操作系统
  11. 免费WebAR与小程序AR制作平台推荐
  12. SAS PROC SQL
  13. diybox路由器设置教程_一个简单的无线路由器入门设置教程,非常实用
  14. python行业中性_用Python分析指数: 11月16日热门指数Z值表
  15. 操作系统-linux
  16. 「SQL数据分析系列」4.过滤操作
  17. Coursera | Andrew Ng (01-week-2-2.17)—Jupyter _ ipython 笔记本的快速指南
  18. python api调用百度ai平台_百度ai开放平台使用方法(附带详细案例步骤)
  19. python指数、幂数拟合curve_fit
  20. 考研高等数学公式总结(二)

热门文章

  1. 循环冗余校验 (CRC) 计算的C++ 代码
  2. OpenGL ES:视频加滤镜后导出
  3. OpenCV——边缘检测原理
  4. 富士通服务器系统安装说明书,富士通电脑u盘重装系统win10教程
  5. DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the
  6. 用Python将多个相同性质Excel工作表整合到一个工作表(.xlsx)中实例
  7. picsart下载_PicsArt下载_PicsArt照片编辑免费版 v10.2
  8. 对象可以创建数组吗_“跟相亲对象这样聊天可以吗?在线等挺急的!”哈哈哈哈……太逗了...
  9. Linux系统运维面试-07
  10. docker安装mysql 5.7