效果预览

在线演示

按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。

https://codepen.io/comehope/pen/BxbQJj

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/c/crvq8hq

源代码下载

本地下载

每日前端实战系列的全部源代码请从 github 下载:

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,一个容器中包含 4 个子元素,每个子元素的内容就是一堆斜线:

<div class="frame">
<div class="wall top"><marquee>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</marquee></div>
<div class="wall right"><marquee>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</marquee></div>
<div class="wall bottom"><marquee>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</marquee></div>
<div class="wall left"><marquee>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</marquee></div>
</div>

居中显示:

body {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}

定义容器尺寸:

.frame {
width: 100vmin;
height: 100vmin;
background-color: whitesmoke;
}

隐藏超出容器的内容:

.wall {
overflow: hidden;
}

把 4 个元素向四个方向旋转,互相垂直:

.wall {
transform-origin: 0 0;
} .wall.top {
transform: rotate(0deg);
} .wall.right {
transform: rotate(90deg);
} .wall.bottom {
transform: rotate(180deg);
} .wall.left {
transform: rotate(270deg);
}

定位它们,形成一个正方形:

.frame {
position: relative;
} .wall {
position: absolute;
width: 100%;
} .wall.top {
top: 0;
left: 0;
} .wall.right {
top: 0;
left: 100%;
} .wall.bottom {
top: 100%;
left: 100%;
} .wall.left {
top: 100%;
left: 0;
}

对 4 个元素进行 3d 旋转:

.frame {
perspective: 40vmin;
} .wall.top {
transform: rotate(0deg) rotateX(-90deg);
} .wall.right {
transform: rotate(90deg) rotateX(-90deg);
} .wall.bottom {
transform: rotate(180deg) rotateX(-90deg);
} .wall.left {
transform: rotate(270deg) rotateX(-90deg);
}

把斜线加粗、放大:

.wall {
font-size: 75vmin;
font-weight: bold;
}

最后,把 dom 中的斜线用 <marquee> 标签包围起来:

&lt;div class="frame"&gt;
&lt;div class="wall top"&gt;&lt;marquee&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/marquee&gt;&lt;/div&gt;
&lt;div class="wall right"&gt;&lt;marquee&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/marquee&gt;&lt;/div&gt;
&lt;div class="wall bottom"&gt;&lt;marquee&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/marquee&gt;&lt;/div&gt;
&lt;div class="wall left"&gt;&lt;marquee&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/marquee&gt;&lt;/div&gt;
&lt;/div&gt;

大功告成!

原文地址:https://segmentfault.com/a/1190000014964220

如何不用 transition 和 animation 也能做网页动画的更多相关文章

  1. 29.如何不用 transition 和 animation 也能做网页动画

    原文地址:https://segmentfault.com/a/1190000014964220 感想:动画效果运用了具有滚动效果的marquee标签 HTML代码: 注释:  <!-- mar ...

  2. 前端每日实战:29# 视频演示如何不用 transition 和 animation 也能做网页动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/BxbQJj 可交互视频教程 此视频 ...

  3. css3实践之图片轮播(Transform,Transition和Animation)

    楼主喜欢追求视觉上的享受,虽常以牺牲性能无法兼容为代价却也乐此不疲.本文就通过一个个的demo演示来简单了解下css3下的Transform,Transition和Animation. 本文需要实现效 ...

  4. transition与animation

    以前,一直都知道,transition是animation的一个简化版,甚至不算是动画,而是一种过渡. transition的用法 早两天用transition写了一个按钮滑动的效果,类似于IOS的设 ...

  5. CSS动画transform、transition和animation的区别

    CSS3属性中关于制作动画的三个属性:Transform,Transition,Animation. 1.transform:描述了元素的静态样式,本身不会呈现动画效果,可以对元素进行 旋转rotat ...

  6. transition和animation做动画(css动画二)

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! translate:平移:是transform的一个属性: transform:变形:是一个静态属性,可以 ...

  7. 终于不再对transition和animation,傻傻分不清楚了 --vue中使用transition和animation

    以前写页面注重在功能上,对于transition和animation是只闻其声,不见其人,对于页面动画效果心理一直痒痒的.最近做活动页面,要求页面比较酷炫,终于有机会认真了解了. transition ...

  8. css010 css的transform transition和animation

    css010 css的transform transition和animation 看着没有一个能想起他们是干什么的.. 1.         Transform    Transform(变形) r ...

  9. css3 transition 和 animation实现走马灯

    这段时间在做一个App,H5的开发.页面上有公告 以走马灯的形式显示出来. 在开始直接用的marquee标签,后来发现在ios客户端,走马灯移动不够平滑,有抖动现象. 对于有强迫症的我而言是无法忍受的 ...

随机推荐

  1. Vue_(组件)自定义指令

    Vue.js自定义指令 传送门 自定义指令:除了内置指令,Vue也允许用户自定义指令 注册指令:通过全局API Vue.directive可以注册自定义指令 自定义指令的钩子函数参数:自定义指令的钩子 ...

  2. 2018-2019-2 20165205 网络对抗技术 Exp7 网络欺诈防范

    2018-2019-2 20165205 网络对抗技术 Exp7 网络欺诈防范 实验内容 本次实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET ...

  3. H264之基础篇

    1. H264 基础概念 在 H.264/AVC 视频编码标准中,整个系统框架划分为如下两个层面: 视频编码层(VCL):VCL 数据即被压缩编码后的视频数据序列,负责有效表示视频数据的内容: 网络抽 ...

  4. better-scroll 介绍

    碰到一个项目,应该遵守两大规则: 1. 不要让项目产生过多的第三方依赖 2. 增强组件的应用率 尽可能的将东西写在组件里面,尽可能的将数据写活,通过组件通信来进行数据转换,用到的依赖处理,我们可以通过 ...

  5. 【.net core 0基础】创建你的第一个.net core应用

    1.下载.NET core相应的SDK,https://dotnet.microsoft.com/download 2.安装完成后,打开命令提示符,输入命令 dotnet,检查是否正确安装,如果命令能 ...

  6. a标签的伪类

    a 超链接 伪类:给元素添加特殊的效果 :link 未访问过的链接初始颜色 :visited 访问过后的链接颜色 :hover 鼠标移入(悬停)时的颜色 :active 鼠标按下时链接的颜色 书写时的 ...

  7. 哨兵模式java实例

    /** * 测试Redis哨兵模式 * @author liu */ public class TestSentinels { @SuppressWarnings("resource&quo ...

  8. #ifdef _WIN32的来源

    宏定义:#ifdef _WIN32   由编译器(ml.exe/ml64.exe)内部定义的.具体描述是: _WIN32:Defined for applications for Win32 and ...

  9. js如何获取window.location.href跳转后查询字符串的值?

    $("#worked_count").parent().attr("onClick","window.location.href='view/warn ...

  10. lucene 快速入门

    日常开发中,相信大家经常会用like去匹配一些数据,同时我们也知道,like往往会导致全表扫描,当数据量越来越大的时候,我们会纠结于 数据库的龟速查找,此时我们必须另寻蹊跷,这时lucene就可以大显 ...