js 模拟css3 动画1

<html>
<head>
<title> javaScript缓动入门 </title>
</head>
<body>
<style type=text/css>
 #taxiway {
    background: #e8e8ff; width: 800px; height: 100px
 }
 #move {
     background: #a9ea00; width:100px; height:98px; border:1px solid red
 }
</style>
<div id="taxiway">
 <div id="move" style="position: absolute; left: 0" onClick="start()"></div>
</div>
<p class=notice display="text-align:center">点击可移动绿色方块</p>
<p id="time0"></p>
<p id="time1"></p>
<p id="time2"></p>
</body>
<script>
/*var myDate = new Date();
myDate.getYear();        //获取当前年份(2位)
myDate.getFullYear();    //获取完整的年份(4位,1970-????)
myDate.getMonth();       //获取当前月份(0-11,0代表1月)
myDate.getDate();        //获取当前日(1-31)
myDate.getDay();         //获取当前星期X(0-6,0代表星期天)
myDate.getTime();        //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours();       //获取当前小时数(0-23)
myDate.getMinutes();     //获取当前分钟数(0-59)
myDate.getSeconds();     //获取当前秒数(0-59)
myDate.getMilliseconds();    //获取当前毫秒数(0-999)
myDate.toLocaleDateString();     //获取当前日期
var mytime=myDate.toLocaleTimeString();     //获取当前时间
myDate.toLocaleString( );        //获取日期与时间
*/

//这里的动画距离是没有误差了,但是在执行时间的时候有很大的误差,所以只能改成时间戳的动画!
var o_show_time0 = document.getElementById(‘time0‘);
var o_show_time1 = document.getElementById(‘time1‘);
var o_show_time2 = document.getElementById(‘time2‘);

//动画参数设置http://www.timotheegroleau.com/Flash/experiments/easing_function_generator.htm
//这个动画好执行距离没有误差,但是在执行动画的时候有误差
var Tween = {
    Quad: {
    easeOut: function(t, b, c, d) {
           t/=d;  //   t=t/d   1/100 //这样就走了100份之一
                   //当t等于d的时候那么他们相除就等于1  刚刚好是初始值动画和结束值相加的值
    return b+c*(t);
}

    }
}

//b:div之样式left初值,c:div要移动的距离,d:div在时间d内完成移动,t:时间
//   d:div在时间d内完成移动 的时间是  d=1000*10  (Run,10)的10
var b=0,c=500,d=1000,t=0;
function Run(){
    var left =  Math.ceil(Tween.Quad.easeOut(t,b,c,d));
    move.style.left = left + "px";
     console.log(‘d=‘+d);
    console.log(‘t=‘+t);
    console.log(‘left=‘+left);
    o_show_time1.innerHTML =  new Date();
    if(t>=d){
          o_show_time2.innerHTML =  new Date();
           clearInterval(timer);
          timer = null;
         // setTimeout(Run, 1);
           }
    t++;
}
var timer = null;
function  start(){
    o_show_time0.innerHTML =  new Date();
      timer = setInterval(Run,10);
    }

</script>

</html>
时间: 2024-08-09 19:52:43

js 模拟css3 动画1的相关文章

JS模拟CSS3动画-贝塞尔曲线

一.什么是贝塞尔曲线 1962年,法国工程师皮埃尔·贝塞尔(Pierre Bézier),贝塞尔曲线来为为解决汽车的主体的设计问题而发明了贝塞尔曲线.如今,贝赛尔曲线是计算机图形学中相当重要的一种曲线,它能过优雅地模拟人手绘画出的线.它通过控制曲线上的点(起始点.终止点以及多个参考点)来创造.编辑图形.其中起重要作用的是位于曲线中央的控制线.这条线是虚拟的,中间与贝塞尔曲线交叉,两端是控制端点.移动两端的端点时贝塞尔曲线改变曲线的曲率(弯曲的程度):移动中间点(也就是移动虚拟的控制线)时,贝塞尔

js 模拟css3 动画2

<html> <head> <title> javaScript缓动入门 </title> </head> <body> <style type=text/css> #taxiway { background: #e8e8ff; width: 800px; height: 100px } #move { background: #a9ea00; width:100px; height:98px; border:1px so

js 模拟css3 动画3

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

一款模拟CSS3动画的js插件-move.js

Move.js是一款简单小巧的模拟CSS3动画的js插件.该插件可以完成CSS3的各种动画效果:移动.变形.倾斜.背景色渐变.旋转等.并且可以在动画中使用各种easing效果. 类似插件可参考:可替代CSS3 transition和transform的jQuery插件. 在线演示:http://www.htmleaf.com/Demo/201501281292.html 下载地址:http://www.htmleaf.com/jQuery/Layout-Interface/20150128129

如何使用js捕获css3动画

如何使用js捕获css3动画 css3动画功能强大,但是不像js,没有逐帧控制,但是可以通过js事件来确定任何动画的状态. 下面是一段css3动画代码: #anim.enable{ -webkit-animation: flash 1s ease 3; -moz-animation: flash 1s ease 3; -ms-animation: flash 1s ease 3; -o-animation: flash 1s ease 3; animation: flash 1s ease 3;

move.js操作CSS3动画

move.js是一款简单的支持CSS3动画的JavaScript库,对于对CSS3的操作不是很熟悉的人来说,使用move.js提供的方法操作CSS3动画更简单方便. 要想使用move.js提供的方法,首先应在我们的HTML页面中引入move.js: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8

vue.js 配合css3 动画

通过点击事件触发v-for渲染的列表各项动画 methods : { adviceFadeIn() { this.$refs.adviceList.forEach((v, i) => { var delay = i*60 var bottom = 0 //清空bottom的值. v.style.bottom = '-2rem' //确保每次点击触发动画前先让列表归位. setTimeout(() => { bottom = (2.5*(this.$refs.adviceList.length-

显示层封装及实现与优化(无动画+css3动画+js动画)

showhide.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>showhide</title> <link rel="stylesheet" href="../css/base.css"> <style> body{ width

关于JS动画和CSS3动画的性能差异

本文章为综合其它资料所得. 根据Google Developer,Chromium项目里,渲染线程分为main thread和compositor thread.如果CSS动画只是改变transforms和opacity,这时整个CSS动画得以在compositor thread完成(而JS动画则会在main thread执行,然后触发compositor进行下一步操作)在JS执行一些昂贵的任务时,main thread繁忙,CSS动画由于使用了compositor thread可以保持流畅,可