双十一大屏css技术总结——3D翻牌效果

2023-12-24 19:59

本文主要是介绍双十一大屏css技术总结——3D翻牌效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 前言

本文是讲解如何使用css实现3D翻牌效果
以下是双十一大屏中用到的3D翻牌。

这里写图片描述

2 实现

2.1 第一步:场景

我们场景是3D,因此首先设置transform-style属性。
transform-style:preserve-3d;

2.2 第二步:翻转

从上图中我们可以明显看到的是一个翻转效果。
翻转效果如何实现呢?
这里肯定要用到的是transform,对吧。
好,赶紧看看transform都包涵哪些。
3D transform常用的transform-function的功能:
  • translate3d():移元素元素,用来指定一个3D变形移动位移量
  • translate():指定3D位移在Z轴的位移量。
  • scale3d():用来缩放一个元素。
  • scaleZ():指定Z轴的缩放向量。
  • rotate3d():指定元素具有一个三维旋转的角度。
  • rotateX()、rotateY()和rotateZ():让元素具有一个旋转角度。
  • perspective():指定一个透视投影矩阵。
  • matrix3d():定义矩阵变形。
经过查看,我们发现,应该用rotateX(),因为动画中我们是绕X轴旋转180度。
然后,我们YY一下,3D场景下,绕X轴旋转180度后应该是背面。像这样:

这里写图片描述

如果不好理解,可以看下面这个:

这里写图片描述

因此,我们进入到第三步。

2.3 第三步:隐藏

我们要让背面不可见。
backface-visibility: hidden;
为了方便理解,可以看这个:

这里写图片描述

这时你会说,我去,文字本身是平面的,不显示不是没有了么?那怎么办啊?
于是,我们来到第四步。

2.4 第四步:复制

由于这个文字本身是平面的,而场景是3D的,因此,我们需要利用两块来拼成一个整体。
html如下:

<li ><span class="list-item-front"><span>天猫双十一晚上火过春</span></span><span class="list-item-back"><span>天猫双十一晚上火过春</span></span>
</li>
当一个旋转180度显示背面时,设置背面隐藏,另一个则显示正面,如此轮换。
你以为这就完了吗?不,并没有。

2.5 第五步:视角

要知道,这可是3D啊,怎么能少了perspective这玩意儿。
perspective: 600px;
没有它,翻转的时候是这样的:

这里写图片描述

有了它,翻转的时候是这样的:

这里写图片描述

看出差别没?看出差别没?
什么,没看出来? 那我请你看看大漠老师的这个:

这里写图片描述

这里写图片描述



好啦,到这里,我只想说:

这里写图片描述

然后,亲四不四想要源代码呀?请去下面的总结。

3 知识点

在这一篇中,主要涉及到了transform属性中的transform-style、backface-visibility和perspective。

3.1 transform-style

transform-style: flat | preserve-3d

flat值为默认值,表示所有子元素在2D平面呈现。preserve-3d表示所有子元素在3D空间中呈现。
注意:transform-style属性需要设置在父元素中,并且高于任何嵌套的变形元素。

3.2 backface-visibility

backface-visibility: visible | hidden

visible为backface-visibility的默认值,表示反面可见。
2.3小结的图应该让人很了然啊~

3.3 perspective

perspective:none | <length>

对于perspective属性,我们可以简单的理解为视距,用来设置用户和元素3D空间Z平面之间的距离。

几个大家都知道的小结论:
- perspective取值为none或不设置,就没有真3D空间。
- perspective取值越小,3D效果就越明显,也就是你的眼睛越靠近真3D。
- perspective的值无穷大,或值为0时与取值为none效果一样。

注意:perspective属性需要设置在父结点。

总结

其实,这个大屏的翻牌效果是我们AIS-UED的@业枫同学(欢迎妹子骚扰?)写的。
其实,代码网上一大波,来来来,我给一个:http://codepen.io/whqet/pen/AfLvt 。
最后,今天周五,现在晚上十点了,我
这里写图片描述

这篇关于双十一大屏css技术总结——3D翻牌效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/532954

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造