小话前端动画

前言

在如今的web时代,网页中的动画已经成为web交互中必不可少的要素,小到一个按钮的点击,大到一个炫酷的特效,各路神圣大显神通,展示了web动画的无限可能,进而动画也就成了前端开发者不得不认真了解的一个领域。

就目前来看,前端实现动画就有六种方式:

  • css的transition
  • css的animation
  • javascript利用setTimeout手写
  • requestAnimationFrames
  • SVG
  • Canvas

以上六种中,SVG由于CSS3的出现使用得越来越少了,而Canvas又是一个很庞大的领域,作为h5如今力压flash的王牌,canvas需要一定的额外学习成本。因此这篇文章将暂时不探讨这两种方式。

而剩下的四种方式,习惯上我们更容易想到,用transition和animation做比较,用setTimeout和requestAnimationFrames做比较,因此我们也已这样的角度,分别探究一下这四种方式的各个方面

阅读更多...

Vue通过JS动态设置-keyFrame实现列表项不同动画

预期效果


对于这个效果,可以选择height配合transition实现,但是css3提供了更流畅的animation,我们就用它来实现这个需求吧

可以看到每一项animation的keyframe都不一样,也就是每一项需要动态使用不同的关键帧。所以主要使用的方法就是动态地往document里插入具有不同关键帧的styleElement,然后在触发动画的地方将animation属性赋给对应的元素。

阅读更多...

由链式调用再探函数柯里化

前言

函数柯里化并不是JS的一个特性,而是一种处理函数的模式,我第一次接触这个概念还是在准备面试复习JS的时候,然而由于之前对函数柯里化不熟悉,复习也就没有完全理解,导致面试时候关于函数柯里化的题只要稍微有变动,就能卡得我一脸懵逼。“一知半解”可是面试中的大忌,于是我打算——再探函数柯里化。

阅读更多...

IntersectionObserver与图片懒加载

文章参考:IntersectionObserver 和图片懒加载

关于 IntersectionObserver

IntersectionObserver 这个 API 平常可能听得比较少,caniuse 兼容性报告目前支持率是 90.12%,还不推荐用于大众化的场景中,但是它的能力和性能非常的好。

IntersectionObserver 接口 (从属于Intersection Observer API) 提供了一种异步观察目标元素与其祖先元素或顶级文档视窗(viewport)交叉状态的方法。祖先元素与视窗(viewport)被称为根(root)。由于可见(visible)的本质是,目标元素与视口产生一个交叉区,所以这个 API 叫做”交叉观察器“。

阅读更多...

leetcode-乘积最大子数组

乘积最大子数组(难度:中等)

给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。

示例1:

输入: [2,3,-2,4]
输出: 6
解释: 子数组 [2,3] 有最大乘积 6。

示例2:

输入: [-2,0,-1]
输出: 0
解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。

阅读更多...

git版本管理复习

git版本管理工具复习
资料来源:Learn Git Branching

git仓库初始化

1
git init

我们初始化完成仓库之后就可以往对应的目录添加文件

假设现在我们编写一个了readme.txt文件,那么我们要使用git管理控制这个文件,还需要将这个文件添加到仓库,而不是仅仅将它放在仓库所在的文件夹

1
git add readme.txt

注意:git add不仅可以添加单个文件,还可以添加文件夹,这样文件夹中任意文件的变化都可以由git进行监控与管理

阅读更多...
  • Copyrights © 2015-2021 AURORA_ZXH
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信