首页 编程语言 css

如何使用CSS设计3D中华烟盒模型

最近华子名声响亮,各种短视频都充满了大金链子与华子。结合实际教学需要,我也来凑一个热度,使用CSS提供动画与3D变形属性设计一个可以旋转的3D中华烟盒。实际效果如下图所示:

3D旋转中华烟盒效果

3D旋转烟盒效果如上图所示,该模型主要使用CSS animation动画属性与transform属性设计并实现效果。以下对实现该效果的主要技术与部分核心代码进行详细描述与说明。


动画效果实现技术

本例烟盒旋转效果使用animation属性进行设计,该属性值由三部分组成,分别是动画名称、动画执行实现及执行次数。如animation:rotate 5s infinite;

动画名称为rotate,动画执行时间为5s,动画执行次数infinite重复执行;

animation属性需要用@keyframes动画规则一块使用,在@keyframes中实现对动画规则进行定义。基本语法:

@keyframes animation_name{定义规则部分}

其中animation_name为定义的动画名称,上例中rotate即为动画名称。其中定义规则部分可使用from{};to{};进行具体的定义。animation动画属性使用实例描述如下:

animation属性实例

该实例表示定义动画执行时间为10s且重复执行,form指当时间为0时定义的CSS样式,to部分指10S时定义的动画。


3D效果实现技术

CSS 通过使用transform属性进行元素的变形操作。主要变形操作包括旋转、放缩、平移等三种变形模式。transform变形可以划分为2D变形与3D变形两种类型。本例旋转的中华烟盒子,主要使用变形方法包括旋转与平移。通过使用旋转与平移实现烟盒长方体6个面的生成。主要技术说明如下:

  1. rotate()旋转方法

该方法主要用于实现元素按照指定角度进行旋转。旋转方法也分为2D平面旋转与3D立体旋转。其中rotateX()指绕X轴旋转,rotateY()指绕Y轴旋转,rotateZ()指绕Z轴旋转,方法参数部分为所需旋转的度数,如45deg表示顺时针方向旋转45度。为更清楚了解3D旋转,以下给出CSS坐标系示例:

CSS坐标系示例

CSS坐标系如上图所示,在3D模式下可以分别围绕X、Y、Z三个坐标轴进行旋转。

  1. translate()平移方法

该方法主要用于实现2D与3D范围内,元素沿着指定轴进行移动,单位为像素,其中translateX()指沿X轴方向平移,translateY()指沿Y轴方向平移,translateZ()指沿Z轴方向平移。

  1. DIV层的定位技术

本例在设计时需要将六个面所对应的div进行重叠,并在此基础上通过旋转与平移使之分离并构成长方体的六个面,最后使用background-image属性给每个层设置背景图片,最终构成中华烟盒的6个面。主要使用属性包括:

position: relative;相对定位;
position: absolute;绝对定位;

素材与实现代码

本例素材来源于网络,使用PS对中华烟盒各个面进行截取,所需素材整体描述如下:

本例所需素材

使用以上6面素材结合background-image属性可将其设置为各个面的背景。本例实现代码如下:

CSS部分代码

CSS部分代码如上图所示,页面部分元素设计描述如下图所示:

页面设计部分代码


静态展示效果图


相关推荐