transition

以前的CSS属性切换时,由于只有开始和截止两个状态,切换时略显生硬

jquery.animate

传说中的jquery在保证兼容性之后,又为开发者提供了简洁的过渡(动画其中之一效果)的语法,只需要简单使用以下代码即可实现一个复杂的过渡效果

$(selector).animate({
cssProp: cssValue
})

在很长一段时间,这种实现动画的方式风靡一时

缺点

  1. 需要选择到具体的DOM,这在现在普遍存在事件代理的时候,在触发状态元素复杂的关系,选择具体DOM是一件困难的事

  2. animate内部时使用定时器,在性能上肯定与原生无法比较

Transitions

在遇到触发动画难以定位元素时,我放弃了animate方法,尝试去往CSS方向寻找解决方案,transition此时出现在我的眼前

一个CSS属性当然先要看兼容性,否则就是耍流氓

IE 10+ 兼容已经比较好了

可以看一下对比代码,比如说hover状态元素变宽

$(e).on('hover' function () {
$(e).animate({
width: "300px"
})
})
.e {
width: 100px;
transition: width 0.2s;
}
.e:hover {
width: 200px;
}

对比

1.代码

jQuery实现的过渡,需要使用js操作DOM,而且存在DOM复杂时不好操作的情况

可读性: 两者都需要知道animate和transition,成本几乎一致,但是在代码可读性层面上,CSS完胜

可维护性: 未来需要扩展的话,改动CSS成本较小,至少可以减少测试,甚至不用测试

2.性能

JQuery代码使用了setInterval来实现动画,而transition是游览器内置实现,可以运行引擎持续优化,在目前,transition也是性能更好

总结

可以说animate方法实现过渡在transition面前不堪一击,学习transition只需要动动手指,了解一下参数即可。

认识一下transition的更多相关文章

  1. CSS 3学习——transition 过渡

    以下内容根据官方规范翻译以及自己的理解整理. 1.介绍 这篇文档介绍能够实现隐式过渡的CSS新特性.文档中介绍的CSS新特性描述了CSS属性的值如何在给定的时间内平滑地从一个值变为另一个值. 2.过渡 ...

  2. css3 transition animation nick

    时光转眼即逝,又到周六了,今天写点某部分人看不起的css玩玩! 转换 转换属性transform: 浏览器前缀: -webkit-transform;-o-transform;-moz-transfo ...

  3. 深入理解CSS过渡transition

    × 目录 [1]定义 [2]过渡属性 [3]持续时间[4]延迟时间[5]时间函数[6]多值[7]阶段[8]触发[9]API 前面的话 通过过渡transition,可以让web前端开发人员不需要jav ...

  4. css3 transition属性

    最近打算学习css3知识,觉得css3写出来的效果好炫好酷,之前一直想要学习来着.可能之前的决心,毅力,耐心不够,所以想要重整起来,放下浮躁的心态,一步一个脚印,踏踏实实的来学习. 首先学习的是css ...

  5. D3中动画(transition函数)的使用

    关于transition的几个基本点: 1. transition()是针对与每个DOM element的,每个DOM element的transition并不会影响其他DOM element的tra ...

  6. 弄清 CSS3 的 transition 和 animation

    弄清 CSS3 的 transition 和 animation transition transition 属性是 transition-property, transition-duration, ...

  7. css3中transition和display的坑

    不知道大家做css3动画的时候遇到过这种情景没? 用opacity实现淡入淡出的效果.噢!good!一切正常 给个栗子: <!DOCTYPE html> <html> < ...

  8. css3中动画(transition)和过渡(animation)详析

    css3中动画(transition)和过渡(animation)详析

  9. border-radius结合transition的一个小应用(动画)

    <head lang="en"> <meta charset="UTF-8"> <title></title> ...

  10. 如何指定个别属性进行transition过渡

    transition是CSS3新增的动画属性,可以实现属性的平滑过渡,大大提高用户体验,对于多个属性进行过渡的话很多人会这样写 .tr{ transition:all 1s} 很不幸的是如果我只需要对 ...

随机推荐

  1. javascript中优雅的处理async和await异常

    let handler = async function(needErr) { return new Promise((resolve, reject) => { if (needErr) { ...

  2. Python爬取6271家死亡公司数据,一眼看尽十年创业公司消亡史!

    ​ 小五利用python将其中的死亡公司数据爬取下来,借此来观察最近十年创业公司消亡史. 获取数据 F12,Network查看异步请求XHR,翻页. ​ 成功找到返回json格式数据的url, 很多人 ...

  3. Java字符串面试问答

    字符串是使用最广泛的Java的类之一.在这里,我列出了一些重要的Java的字符串面试问答. 这将有助于您全面了解String并解决面试中与String有关的任何问题. Java基础面试问题 Java中 ...

  4. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 1

    如今的项目开发中,接口是很普遍的应用技术.现在好多项目组都单独设有接口开发人员.像腾讯.微博.淘宝等开放平台,其所谓的开放,就是提供一些可调用的接口,用于获取相关的信息.例如,微信用户基本信息.淘宝店 ...

  5. Java学习笔记 DbUtils数据库查询和log4j日志输出 使用

    DbUtils使用 QueryRunner DbUtils中定义了一个数据库操作类QueryRunner,所有的数据库操作CRUD都是通过此类来完成. 此类是线程安全的 方法名 对应sql语句 exc ...

  6. Python爬虫动态User-Agent

    下载库fake_useragent 然后就可以随心所欲的使用不同UA了

  7. 【面试突击】-RabbitMQ常见面试题(三)

    1.什么是RabbitMQ?为什么使用RabbitMQ? 答:RabbitMQ是一款开源的,Erlang编写的,基于AMQP协议的,消息中间件: 可以用它来:解耦.异步.削峰. 2.RabbitMQ有 ...

  8. WebLogic任意文件上传漏洞复现与分析 -【CVE-2018-2894 】

    CVE-2018-2894 漏洞影响版本:10.3.6.0, 12.1.3.0, 12.2.1.2, 12.2.1.3 下载地址:http://download.oracle.com/otn/nt/m ...

  9. ICMP重定向 Redirect netwox libpcap netwag

    搭建环境 两台虚拟机. 攻击者:192.168.1.8 被攻击者:192.168.1.9 网络配置 主机均采用DHCP 如果没有路由器,可以使用NAT模式来做 攻击者配置 打开转发数据包功能 # su ...

  10. 工具类ToastUtil 避免在子线程中使用抛异常 "Can't create handler inside thread that has not called Looper.prepare()"

    package com.example.kbr.utils; import android.view.Gravity; import android.widget.Toast; import io.r ...