jquery animate 运动速度由慢逐渐变快怎么实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery animate 运动速度由慢逐渐变快怎么实现相关的知识,希望对你有一定的参考价值。

jquery animate 运动速度由慢逐渐变快怎么实现

jquery.easing.js--animate--easing--参数

animate() 方法执行 CSS 属性集的自定义动画。

该方法通过CSS样式将元素从一个状态改变为另一个状态。CSS属性值是逐渐改变的,这样就可以创建动画效果。

只有数字值可创建动画(比如 "margin:30px")。字符串值无法创建动画(比如 "background-color:red")。

注释:使用 "+=" 或 "-=" 来创建相对动画(relative animations)。

语法 1

$(selector).animate(styles,speed,easing,callback)

参数描述

styles

必需。规定产生动画效果的 CSS 样式和值。

可能的 CSS 样式值(提供实例):

backgroundPosition

borderWidth

borderBottomWidth

borderLeftWidth

borderRightWidth

borderTopWidth

borderSpacing

margin

marginBottom

marginLeft

marginRight

marginTop

outlineWidth

padding

paddingBottom

paddingLeft

paddingRight

paddingTop

height

width

maxHeight

maxWidth

minHeight

minWidth

font

fontSize

bottom

left

right

top

letterSpacing

wordSpacing

lineHeight

textIndent

注释:CSS 样式使用 DOM 名称(比如 "fontSize")来设置,而非 CSS 名称(比如 "font-size")。

speed

可选。规定动画的速度。默认是 "normal"。

可能的值:

毫秒 (比如 1500)

"slow"

"normal"

"fast"

easing

可选。规定在不同的动画点中设置动画速度的 easing 函数。

内置的 easing 函数:

swing

linear

扩展插件中提供更多 easing 函数。

callback

可选。animate 函数执行完之后,要执行的函数。

如需学习更多有关 callback 的内容,请访问我们的 jQuery Callback 这一章。

语法 2

$(selector).animate(styles,options)

参数描述

styles必需。规定产生动画效果的 CSS 样式和值(同上)。

options

可选。规定动画的额外选项。

可能的值:

speed - 设置动画的速度

easing - 规定要使用的 easing 函数

callback - 规定动画完成之后要执行的函数

step - 规定动画的每一步完成之后要执行的函数

queue - 布尔值。指示是否在效果队列中放置动画。如果为 false,则动画将立即开始

specialEasing - 来自 styles 参数的一个或多个 CSS 属性的映射,以及它们的对应 easing 函数

参考技术A

这个是缓动函数啦 并且这个是基于时间的缓动

http://www.cnblogs.com/top5/archive/2011/06/28/2092495.html

有相关的教程 

这里说比较复杂了 可以先看看教程

缓动算法Tween 

哪里不懂得话 在追问 

加我QQ也可以

参考技术B 下载jquery.easing.js,然后animate里easing那个参数就可以用了,有很多动态效果模式可以选择。追问

不是这种效果,我晕。。,一条直线运动,运动的速度逐渐快起来,就行汽车启动那样,慢慢的快起来

参考技术C 可以使用缓动函数,,,由于涉及的知识点较多,,,直接挂链接了啊
http://www.cnblogs.com/top5/archive/2011/06/28/2092495.html
复制它的代码到本地,,顺便学习学习 希望可以帮到你
参考技术D <!DOCTYPE html>
<html>
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="/js/sandbox/jquery/jquery-1.8.2.min.js" type="text/javascript"></script>
<title>
RunJS 演示代码
</title>
<style>
div
border: 1px solid #fd3;
position: absolute;

</style>
<script>
var speed = 1500, dest = 500; 
jQuery(function($)
var div = $("div");
var run = function()
var left = parseFloat(div.css("left")) || div.prop("offsetLeft");
if (left == 500) dest = 0;
else if (left == 0) dest = 500;
div.text(speed);
div.animate(
left: dest + "px"
, speed, function()
div.clearQueue().delay(100).queue(function()
speed -= 100;
speed < 100 ? speed = 100:0;
run();
);
);

run();
);
</script>
  </head>
<body>
<div>
dd
</div>
  </body>
</html>

jQuery动画效果animate和scrollTop结合使用实例

CSS属性值是逐渐改变的,这样就可以创建动画效果。 只有数字值可创建动画(比如 "margin:30px")。 字符串值无法创建动画(比如 "background-color:red")。

复制代码 代码如下:
$(‘#shang‘).click(function(){$(‘html,body‘).animate({scrollTop: ‘0px‘}, 800);});

上面的代码表示滚动条跳到0的位置,页面移动速度是800。 结合scrollTop实用示例:

复制代码 代码如下:
jQuery(document).ready(function($){  $(‘#shang‘).click(function(){   $(‘html,body‘).animate({scrollTop: ‘0px‘}, 800);  });  $(‘#comt‘).click(function(){   $(‘html,body‘).animate({scrollTop:$(‘#comments‘).offset().top}, 800);  });  $(‘#xia‘).click(function(){   $(‘html,body‘).animate({scrollTop:$(‘#footer‘).offset().top}, 800);  }); });

表示点击相关ID移动到指定位置: 点击ID为shang的元素,回到顶部; 点击ID为comt的元素,回到ID为comments的位置; 点击ID为xia的元素,回到底部;

 

原生js如何实现jQuery.animate中的scrollTop方法

  • jquery
  •                                                                     
  • javascript
  •                                                             

                            

radical                                2016年12月02日提问

                        

    

                                                         0                                                     
                    

网上找不到一个好的介绍来实现,

$(‘html, body‘).animate({
  scrollTop: 800
}, 1000)

怎么控制这个scrollTop的 时间呢?

                    
                
 

查看全部 3 个回答        

                                 0                             

你要做的不是控制时间,而是控制步长,比如800px,800ms,就是800ms内移动800px,如果是1600px,那就800ms内移动1600px

以上是关于jquery animate 运动速度由慢逐渐变快怎么实现的主要内容,如果未能解决你的问题,请参考以下文章

jquery11源码 animate() : 运动的方法

JQuery源码分析 --- 运动animate 入队出队

jQuery动画效果animate和scrollTop结合使用实例

JQuery源码分析 --- 运动animate 预处理

animation-timing-function的steps详解

jquery 的 animate(left:1000px,1000);和animate(marginLeft:1000px,1000);有啥区别呢?