该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

使用js实现一个持续的动画效果

最开始的思路是用定时器实现,最后没有想的太完整,面试官给出的答案是用 requestAnimationFrame。

var e = document.getElementById('e')

var flag = true;

var left = 0;

setInterval(() => {

left == 0 ? flag = true : left == 100 ? flag = false : ''

flag ? e.style.left = ` ${left++}px` : e.style.left = ` ${left--}px`

}, 1000 / 60)

requestAnimationFrame

由于之前没有用过这个 API 所以是现学的。

//兼容性处理

window.requestAnimFrame = (function(){

return window.requestAnimationFrame ||

window.webkitRequestAnimationFrame ||

window.mozRequestAnimationFrame ||

function(callback){

window.setTimeout(callback, 1000 / 60);

};

})();

var e = document.getElementById("e");

var flag = true;

var left = 0;

function render() {

left == 0 ? flag = true : left == 100 ? flag = false : '';

flag ? e.style.left = ` ${left++}px` :

e.style.left = ` ${left--}px`;

}

(function animloop() {

render();

requestAnimFrame(animloop);

})();

不足之处请指正(毕竟是现学的)顺便查了一下优势:

浏览器可以优化并行的动画动作,更合理的重新排列动作序列,并把能够合并的动作放在一个渲染周期内完成,从而呈现出更流畅的动画效果

解决毫秒的不精确性

避免过度渲染(渲染频率太高、 tab 不可见暂停等等) 注: requestAnimFrame 和 定时器一样也头一个类似的清除方法cancelAnimationFrame。

html5注册阿里巴巴作业,面试分享:2018阿里巴巴前端面试总结(题目+答案)相关推荐

  1. 2018年前端面试总结

    再有两个月,2018就快过完了,因而有必要在年末对2018年的前端学习做一个总结,本文主要从前端面试中的一些基础知识来对前端进行相关的总结.本文根据网络面试题进行总结. 基础知识 本部分主要从以下几个 ...

  2. 一次有趣的面试经历,当前端面试碰到后端面试官会发生什么?

    前言 金九银十,又是一年跑路季.先介绍下个人情况,一年半经验,计算机专业的大专.凭着对前端的热爱,基本每天都会抽点时间来学习,基础还算可以.其实上家公司呆着还是挺舒服的,没有加班,唯一不好就是不偏技术 ...

  3. 小米前端面试、字节跳动前端面试、百分点前端面试-面试总结

    小米前端开发面试(社招,南京) 小米面试问的问题都会涉及到具体的原理,每个技术点都要求深入的理解.小米的前端社招面试基本会经过四轮技术面试,面试通过之后HR会和你联系询问你的薪资期望,之后小米会有两天 ...

  4. 用html5做一个介绍自己家乡的页面_(近万字)一篇文章带你了解HTML5和CSS3开发基础与应用-适合前端面试必备...

    作者 | Jeskson来源 | 达达前端小酒馆 HTML5和CSS3开发基础与应用,详细说明HTML5的新特性和新增加元素,CSS3的新特性,新增加的选择器,新的布局,盒子模型,文本,边框,渐变,变 ...

  5. 2018实用前端面试问题集锦

    1. 常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera. (Q2) 内核:Trident,Gecko,P ...

  6. 前端程序员怎么面试找工作?前端面试技巧分享

    我面试过很多前端程序员,非常了解面试者和面试官的心理,我可以很负责的告诉你: 就算面试你的人说你只能拿8K,但是你完全可以通过各种方法去拿到10K以上的薪资! 面试的时候面试官都是什么样的心理? 大多 ...

  7. 2018秋季前端面试问题总结

    记录一下最近面试遇到的问题 2018-08-18 上传图片压缩 使用canvas.drawImage()方法将图片进行压缩,再使用canvas.toDataURL()方法将canvas画布转为base ...

  8. 面试分享:手机收费问题面试

    题目: 周一到周五10:00-22:00第分钟3毛 周一到周五22:00-10:00第分钟2毛 周六周天全天1毛5 一.测试方法 1.等价类 1.1.以周一到周五视为一类,周六和周天视为一类: 1.2 ...

  9. 分享一篇前端面试常会问及的 WEB 安全

    大家好,今天给大家介绍一下,Web安全领域常见的一些安全问题. 1.SQL 注入 SQL注入攻击的核心在于让Web服务器执行攻击者期望的SQL语句,以便得到数据库中的感兴趣的数据或对数据库进行读取.修 ...

  10. 面试官日记:前端面试(80% 应聘者不及格系列) 之JS 面试题

    ​ 一位大佬在做面试官这 2 年多的时间内,面试了数百个前端工程师,惊讶的发现,超过 80% 的候选人对下面这道题的回答情况连及格都达不到.这究竟是怎样神奇的一道面试题?他考察了候选人的哪些能力?对正 ...

最新文章

  1. 很遗憾,我们正在逐渐丧失专注阅读的能力
  2. AVR系列之ADC转换
  3. rac_安装软件时报版本号过高问题
  4. 兰大202005批次计算机基础,【每日一校】2020年兰州大学 各批次录取人数与分数线统计...
  5. spring配置jndi_在Spring Framework中通过JNDI进行配置
  6. iphone全部机型_iPhone 12 销量或创 iPhone 6 以来最高|iphone|郭明錤
  7. [转]如何处理机器学习中的不平衡类别
  8. acm省赛选拔组队赛经验谈
  9. 利用sendmail搭建电子邮件服务器
  10. linux之history使用技巧
  11. BLOG 可能的 BUG
  12. Retrofit的简单封装
  13. 进入地图后分别进行放大缩小操作
  14. matlab期货,Matlab在股指期货中的应用
  15. MySQL 数据库备份(完全备份与恢复)
  16. 如何创建计算机的桌面快捷方式,怎样创建桌面快捷方式 创建桌面快捷方式N种方法...
  17. 阿里云商标注册购物车功能怎么用?在哪查看?
  18. Linux 服务器上安装 Virtuoso 数据库 并导入数据(超详细)
  19. ORA -09925
  20. 关于Linux LOOPBACK网口抓包的一个细节

热门文章

  1. microsoft azure Media Services 媒体服务解决方案
  2. java tostring 库_JavaBean toString() – 将bean对象打印成字符串
  3. mysql language sql immutable_sql - PostgreSQL是否支持“不区分重音”排序规则?
  4. 济南大学计算机控制系统,杨波-济南大学人工智能研究院
  5. Java七大设计模式原则(附相关电子图书下载)
  6. linux系统基本特点分时,Linux操作系统四个优点.docx
  7. 520超浪漫文艺表白,追求女神必备!!动态Html网页,无编程基础也可娱乐
  8. 0基础学java可行吗_上海0基础学JAVA可行吗?
  9. python reduce函数怎么用_python内置函数reduce
  10. LintCode—链表翻转(35)