《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(六)

简介: 《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(六)

44-闪烁效果


背景知识:基本的 css 动画,“逐帧动画”

介绍:以前有一个 blink 标签可以达到文字闪烁的效果,但是被滥用和诟病,现在主流浏览器都不在支持了,不过闪烁效果在某些场景下还是对可用性有益的。


1687781645900.png


/**
 * Blinking
 */
@keyframes blink-1 { 50% { color: transparent } }
@keyframes blink-2 { to { color: transparent } }
p {
    padding: 1em;
    background: gold;
}
.blink-smooth-1 {
    animation: 1s blink-1 3;
}
.blink-smooth-2 {
    animation: .5s blink-2 6;
    animation-direction: alternate;
}
.blink {
    animation: 1s blink-1 3 steps(1);
}


45-打字动画


介绍:使用 css 模拟打字效果


1687781659582.png


<h1>CSS is awesome!</h1>
/**
 * Typing animation
 */
@keyframes typing {
    from { width: 0 }
}
@keyframes caret {
    50% { border-right-color: transparent; }
}
h1 {
    font: bold 200% Consolas, Monaco, monospace;
    /*width: 8.25em;*/
    width: 15ch;
    white-space: nowrap;
    overflow: hidden;
    border-right: .05em solid;
    animation: typing 8s steps(15),
               caret 1s steps(1) infinite;
}


46-状态平滑的动画


背景知识:基本的 css 动画, animation-direction (在 “闪烁效果”中曾简要提及)

介绍:本案例实现了,当动画终止时,不会僵硬的回到初始状态而是停留在当前帧。


1687781673025.png


<div class="panoramic"></div>
/**
 * Smooth state animations
 * Photo credits: https://www.flickr.com/photos/employtheskinnyboy/3904743709
 */
@keyframes panoramic {
    to { background-position: 100% 0; }
}
.panoramic {
    width: 150px; height: 150px;
    background: url('http://c3.staticflickr.com/3/2671/3904743709_74bc76d5ac_b.jpg');
    background-size: auto 100%; 
    animation: panoramic 10s linear infinite alternate;
    animation-play-state: paused;
}
.panoramic:hover, .panoramic:focus {
    animation-play-state: running;
}


47-沿环形路径平移的动画


背景知识: css 动画,css 变形, “平行四边形”, “菱形图片”, "闪烁效果"

介绍:一个实用的案例,元素沿环形路径移动的两种方案


需要两个元素的解决方案


1687781687058.png


<div class="path">
    <div class="avatar">
        <img src="http://lea.verou.me/book/adamcatlace.jpg" />
    </div>
</div>
/**
 * Animation along a circular path - Solution 1
 */
@keyframes spin {
    to { transform: rotate(1turn); }
}
.avatar {
    animation: spin 3s infinite linear;
    transform-origin: 50% 150px;
}
.avatar > img {
    animation: inherit;
    animation-direction: reverse;
}
/* Anything below this is just styling */
.avatar {
    width: 50px;
    margin: 0 auto;
    border-radius: 50%;
    overflow: hidden;
}
.avatar > img {
    display: block;
    width: inherit;
}
.path {
    width: 300px; height: 300px;
    padding: 20px;
    border-radius: 50%;
    background: #fb3;
}


单个元素的解决方案


1687781697874.png


<div class="path">
    <img src="http://lea.verou.me/book/adamcatlace.jpg" class="avatar" />
</div>
/**
 * Animation along a circular path - Solution 2
 */
@keyframes spin {
    from {
        transform: rotate(0turn)
                   translateY(-150px) translateY(50%)
                   rotate(1turn)
    }
    to {
        transform: rotate(1turn)
                   translateY(-150px) translateY(50%)
                   rotate(0turn);
    }
}
.avatar {
    animation: spin 3s infinite linear;
}
/* Anything below this is just styling */
.avatar {
    display: block;
    width: 50px;
    margin: calc(50% - 25px) auto 0;
    border-radius: 50%;
    overflow: hidden;
}
.path {
    width: 300px; height: 300px;
    padding: 20px;
    margin: 100px auto;
    border-radius: 50%;
    background: #fb3;
}


总结


我在本篇文章中整理了《css揭秘中》47个有趣的css 技巧案例 20-47 部分,通过温习这本书,学习到了很多 css 技巧,这本书是 6 年前出版的,但是里面很多知识到现在都还是令人眼前一亮,非常值得阅读。

目录
相关文章
|
6月前
|
移动开发 前端开发 JavaScript
编程笔记 html5&css&js 005 网页上都有哪内容、形式和操作
编程笔记 html5&css&js 005 网页上都有哪内容、形式和操作
|
6月前
|
前端开发 JavaScript
如何固定html表格头部,用css样式即可实现,操作简便、代码简单
如何固定html表格头部,用css样式即可实现,操作简便、代码简单
70 0
|
JSON 前端开发 JavaScript
jQuery操作CSS
jQuery操作CSS
80 0
|
前端开发
CSS 高阶小技巧 - 角向渐变的妙用!
CSS 高阶小技巧 - 角向渐变的妙用!
105 0
|
11月前
|
JavaScript 前端开发
【jQuery学习】—jQuery操作CSS和表格
【jQuery学习】—jQuery操作CSS和表格
|
存储 前端开发 JavaScript
JavaScript操作表格及CSS样式
JavaScript操作表格及CSS样式
176 0
|
前端开发
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
187 0
|
前端开发 JavaScript
使用JS操作CSS
一.什么是css? Cascading Style Sheets 通常称为CSS样式表或层叠样式表(级联样式表) CSS用于控制网页的外观 (HTML是用于控制网页结构的,JS是控制网页的行为) Css让界面变得更加美观
|
前端开发
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(五)
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(五)
86 0
|
前端开发
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(四)
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(四)
78 0