纯CSS实现Scroll Indicator(滚动指示器)
Scroll Indicator称之为滚动指示器,是Web中常见的一种效果。用户滚动垂直滚动内容时,页面顶部有一个类似进度条的效果,当内容滚动到页面最低端,进度条效果填满整个进度条。感觉描述得有点绕,还是录制一个动效图,用图来说明这种效果,毕竟一图胜过千言万语:以前实现这种效果都需要借助于JavaScript,或者说是采用jQuery的插件。网上有关于这方面的介绍的文章也很多,比如:@PANKAJ...
View Article函数式编程术语解析
函数式编程蔚然成风,越来越多的开源项目、技术交流在使用函数式编程的术语降低开发或沟通成本,这无形中对不了解函数式编程的开发者造成了一定的学习门槛,翻译本文的初衷就是要普及函数式编程的基本知识,从新的角度扩展编程思维。至于为什么要使用 JavaScript 演示函数式编程,一方面是因为 JavaScript 的特性在很多方面与函数式编程浑然天成,另一方面是因为 JavaScript 是世界上最 XX...
View Article【转载】使用 FLIP 来提高 Web 动画的性能
本文转载自:bubkoo的《使用 FLIP 来提高 Web 动画的性能》一文。原文地址:http://bubkoo.com/2016/03/31/high-performance-animationsCSS 动画已经存在很多年了,使用恰当可以很好地提高网站的用户体验,也正是由于其容易使用,就很可能出现性能低下的动画,从而降低了整个页面的运行效率。回想一下:你曾经是否使用过 CSS...
View Article【转载】使用 Chrome Timeline 来优化页面性能
本文转载自:@skywalker_z的《使用 Chrome Timeline 来优化页面性能》一文。原文地址:https://blog.coding.net/blog/Chome-Timeline。有时候,我们就是会不由自主地写出一些低效的代码,严重影响页面运行的效率。或者我们接手的项目中,前人写出来的代码千奇百怪,比如为了一个 Canvas 特效需要同时绘制 600个三角形,又比如...
View ArticleJavaScript运算符:== VS. ===
@manxisuo的《通过一张简单的图,让你彻底地、永久地搞懂JS的==运算》一文中详细的阐述了JavaScript中的==运算符。其实在JavaScript中还有一个另外一个运算符===。那么这两者有何不一样呢?这篇文章就一起来看看JavaScript中==和===有何不同。关系表达式==和===都是JavaScript中的关系表达式运算符,与对应的还有!=和!==。==和===运算符主要用于比较...
View ArticleWAAPI入门
动画在Web应用中不是必须的,但是使用得好能起到锦上添花的作用。早期在Web中看到的动画主要有Flash、Gif图片动画、JavaScript动画、SVG动画、APNG动画和CSS3动画等。特别是随着浏览器对CSS3属性支持力度的提高,使用CSS3制作动画的情景在Web应用中越来越频繁。虽然实现动画的技术可以有多种不同的实现方式,但每种技术都存在一定的缺点,比如CSS3动画必须通过JavaScrip...
View Article【转载】高性能的动画
本文转载自:@Paul Lewis和@Paul Irish的《High Performance Animations》一文。原文地址:http://www.html5rocks.com/zh/tutorials/speed/high-performance-animations/让我们直接进入主题。现代浏览器在完成以下四种属性的动画时,消耗成本较低: position(位置),...
View ArticleWAAPI属性
从上一篇文章中我们快速的了解了Web Animation API能做什么,也能使用Web Animation API制作类似CSS3 Animation实现的动效。但到目前为止,也仅仅就如此,并没有看到Web Animation API比CSS Animation有任何优势之处。那在这篇文章中,咱们来看看Web Animation API和CSS...
View ArticleWeb动画
动画是使 Web 应用和网站吸引人的重要因素。 用户希望有快速响应和高度交互的用户界面。 但是,为界面设置动画未必很简单。 什么应设置动画,何时显示,以及动画应有哪种感觉?使用动画作为一种给项目增加活力的方式。动画应支持用户交互。要注意设置动画的属性;有一些属性比其他属性开销更大!选择合适的内容来设置动画出色的动画可增添一层享受,增加项目对用户的吸引力。...
View Articlez-index和transform
z-index和transform是CSS中的属性,但很少同学将二者联系到一起,感觉他们八杆子打不上。事实真的是这样吗?如果你也不能确认,这篇文章就值得你花点时间阅读。因为阅读完了,你会有所收获的。堆叠上下文(Stacking Context)在开始今天的主题之前,先得回忆一下CSS中的Stacking...
View Article为什么要开始学习Sass
本文不会像一些其它文章一样,教你如何开始使用Sass,我会告诉你为什么使用Sass,我到底喜欢它什么。我最初是在一个Laravel项目中,接触了Sass,Larvel是个PHP框架,内建有Elixir服务支持Sass。你可能觉得说这个玩意跟我们没啥关系,但是重点是Larvel支持Sass,使Sass非常容易上手,这就促使我去尝试使用Sass,慢慢了解到它的很多优点。之前,我总觉得,写脚本在CSS里会...
View ArticleOOCSS vs. OOSCSS
在这篇文章中我主要想给大家阐述在使用Sass来编写CSS和OOCSS两者之间的差异。在开始之前,我想在大家对定义语义化和演示(视觉)类名之间的差异有所了解。语义化和演示(视觉)类名演示(Presentational):这里更趋向于将其称之为视觉类名,就是纯视觉。简单点说,视觉化类名是没有任何意思,就是根据视觉呈现的风格化,将其在HTML元素中声明类名。也就是说根据,视觉的表象,在HTML定义对应的类...
View ArticleSass:@mixin和@extend该如何选择
Mixins允许我们在项目中复用样式片段,可以传递参数这个特性使得它们非常灵活,强大。同样,我们也可以使用@extend命令让一个选择器继承其它选择器去复用样式片段。有的时候Mixin和extend好像做了同样的事情,那我们应该选择哪一个呢?这个问题我会在本文的最后给出答案。在这之前,我先谈一谈关于@mixin指令的一些事情。除了传递参数,我想让你知道如何给一个mixin传递CSS片段,了解这个片段...
View ArticleSass: @mixin指令介绍
为了有效的维护和开发项目,代码的重复利用就显得尤为重要。在Sass中,除了@import和@extend可以使你的代码更加具有重复利用性,@mixin指令也同样能提高你代码的重复使用率并简化你的代码。@extend指令通过继承从而简化了代码,但是它也有缺陷之处,首先是不够灵活,其次它还会将你不需要的其他地方具有相同类名的样式都继承过来。@mixin指令是另一种简化代码的方法。Mixins可以包含任意...
View Article解决Sass媒体查询的重复问题,优化工作流程
在Sass中有很多方法可以解决媒体查询这个问题,但是其中一些方法存在相同的问题。一开始我会还原这个问题,然后提供我的解决方案,最后列出这个方案对工作流程的好处。问题假如我们把网站的Sass样式分离成多个像header.scss,hero.scss,cards.scss等等这样的组件。为他们添加各自的响应式样式最简洁的做法是,在各自的组件文件中添加相应的响应式样式。为了实现这样的效果,最简单的做法就是...
View Article内置 Symbol 值详细概述
Symbol是 ECMAScript 2015 引入的新原始数据类型(primitive type)。使用 Symbol 可以创建独一(unique)的标识符,用法是:let uniqueKey = Symbol('SymbolName').Symbol 可以被用作对象中属性的键名。一系列被 JavaScript 特殊处理的 Symbol 值被发布为内置 Symbol 值(well-known...
View Article