<script>
var id=document.getElementById("id");
var a=0;
var right=document.getElementById("right");
var left=document.getElementById("left");
var t;
var timer=null;
right.onclick=function(){
timer=setInterval(function(){
if(id.offsetLeft<300){
id.style.left=id.offsetLeft+5+'px';
}else{
clearInterval(timer);
}
},10);
};
left.onclick=function(){
timer=setInterval(function(){
if(id.offsetLeft){
id.style.left=id.offsetLeft-5+'px';
}else{
clearInterval(timer);
}
},10);
};
</script>
<p class="wrapper">
<p class="box" id="id">
</p>
</p>
<input type="button" value="向左" id="left">
<input type="button" value="向右" id="right">
请问如何在我写的js基础上 添加一个缓动函数的效果
我的思路,用js控制一个p,向右移动开始直到最快。要有一种飞快的效果。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
css3的动画不挺好的,控制运动速度就用贝塞尔曲线啊 ,你这个要求正好有默认的
ease-in可以用你需要的是一个加速度公式
你现在写的是匀速的。只需要每一次比上一次移动距离更大....要大多少看起来舒服你得自己去调
var id=document.getElementById("id");
定义个加速度变量,让速度一直加加速度就ok了。我记得智能社的视频上讲js动画讲的很详细,可以推荐去看下。嘿嘿,blue讲的js真的挺好的。
使用css3的transaction和transform。
transaction里面定义时间和缓动函数。
transform里面使用translate3d替代left属性来做动画,这个属性会调用显卡做加速,动画效果比left要好,流畅得多。
css