本文介绍如何使用jQuery animate 动画制作浮动层并跟随屏幕滚动
jQuery animate 是 jQuery 库中非常有用的一个函数,它允许开发者以动画的形式改变元素的 CSS 属性。这个函数接受两个主要的参数:一个是包含 CSS 属性和值的映射对象,另一个是可选的动画完成后的回调函数。但是,实际上 animate 函数还有更多的参数,可以让我们更细致地控制动画的行为。
主要js代码与说明
<script type="text/javascript">
$(document).ready(function () {
//获得元素距离上面的高度
var menuYloc = $("#test").offset().top;
//页面发生滚动事件
$(window).scroll(function () {
//定义offsetTop值等于页面滚动的高度加上元素距离上面的高度
var offsetTop = menuYloc + $(window).scrollTop() + "px";
// top: offsetTop CSS 属性和值 duration: 600, 动画持续时间:600 毫秒.queue: false 动画不加入队列
$("#test").animate({ top: offsetTop }, { duration: 600, queue: false });
});
});
</script>jQuery animate 函数的主要参数:
properties: 这是一个包含 CSS 属性和值的对象,定义了动画的效果。例如,{ left: '250px', opacity: '0.5' }。
duration: 动画的持续时间,可以是字符串(如 ‘slow’、’fast’)或毫秒数。默认值是 ‘fast’。
easing: 用于指定动画的缓动函数。缓动函数定义了动画的速度曲线,如 ‘linear’、’swing’ 或其他自定义的缓动函数。默认值是 ‘swing’。
complete: 动画完成后调用的回调函数。这个函数会在动画的最后一帧执行。
step: 一个可选的函数,会在动画的每一帧调用。它允许你自定义动画的每一帧行为。
queue: 一个布尔值,用于决定动画是否应该加入队列。如果设置为 false,动画将立即开始,而不是等待其他队列中的动画完成。默认值是 true。
specialEasing: 一个对象,允许你为动画中的每个属性指定不同的缓动函数。
animate 实例
<script>
$('#test').animate({
left: '50px',
opacity: '0.8'
}, {
duration: 1000, // 动画持续时间:1000 毫秒
easing: 'linear', // 线性缓动函数
complete: function() {
// 动画完成后的回调函数
console.log('Animation complete!');
},
step: function(now, fx) {
// 每一帧调用的函数
console.log('Current CSS value: ' + fx.prop + ': ' + now);
},
queue: false, // 动画不加入队列
specialEasing: {
left: 'easeInQuad', // 左侧动画使用 easeInQuad 缓动函数
opacity: 'easeOutBounce' // 透明度动画使用 easeOutBounce 缓动函数
}
});
</script>
