搜索
首页web前端js教程javascript动画对象支持加速、减速、缓入、缓出的实现代码_javascript技巧

调用接口:

复制代码 代码如下:

/**
* @param elem {HTMLElement} 执行动画的HTML元素
* @param params {JSON} 动画执行过过程中需要修改的HTML属性
* @param duration {Number} 可选,动画执行时间,单位毫秒
* @param easing {String} 可选,动画执行的方式,缓入easeIn、缓出easeOut
* @param callback {Function} 可选,动画执行完成时的回调函数
* @return
*/
effect.animate(elem, params, duration, easing, callback);

使用它用不了20行代码就可以做一个产品图片减速淡出、加速淡入的切换效果点击这里查看演示效果
复制代码 代码如下:

//辅助对象,读/写DOM元素属性
var attribute = {
get: function(elem, attr){
var val;
if(elem.currentStyle){
if(attr === "opacity") {
val = elem.filters.alpha[attr];
}else {
val = elem.currentStyle[attr];
}
}
else{
val = getComputedStyle(elem)[attr];
if(attr === "opacity") {
val = 100 * val;
}
}
return val;
},
set: function(elem, attr, val){
if(attr=='opacity'){
elem.style.filter = 'alpha(opacity='+ (val) +')';
elem.style.opacity = (val)/100;
}
else{
elem.style[attr] = val + 'px';
}
}
};
/*
* 描述: tween动画算法。
* @param Number t: 动画已经执行的时间(实际上时执行多少次/帧数)
* @param Number b: 起始位置
* @param Number c: 终止位置
* @param Number d: 从起始位置到终止位置的经过时间(实际上时执行多少次/帧数)
*/
var tween = {
//缓入
easeIn: function (t, b, c, d){
return c * (t/=d) * t + b;
},
//缓出
easeOut: function (t,b,c,d){
return -c * (t/=d) * (t-2) + b;
}
};
//动画对象
var effect = {
animate: function(elem, params, duration, easing, callback){
var dt = new Date().getTime(),
b = 0,
c = 0,
d = duration || 500,
fps = 1000/60;
var changes = [];
for(var attr in params){
b = parseFloat(attribute.get(elem, attr));
c = params[attr] - b;
changes.push({
attr: attr,
b: b,
c: c
});
}
easing = easing || "easeOut";
callback = callback || new Function;
setTimeout(function(){
var t = new Date().getTime() - dt;
var b, c, attr;
for(var i=0; ib = changes[i].b;
c = changes[i].c;
attr = changes[i].attr;
attribute.set(elem, attr, tween[easing](t, b, c, d));
if(d attribute.set(elem, attr, params[attr]);
callback();
return;
}
}
setTimeout(arguments.callee, fps);
}, fps);
}
};
//by rentj1@163.com
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Laravel缓存机制:加速应用程序的响应时间Laravel缓存机制:加速应用程序的响应时间Aug 26, 2023 pm 08:12 PM

Laravel缓存机制:加速应用程序的响应时间引言:在今天的互联网时代,快速的应用程序响应时间对于用户体验和业务成功至关重要。为了提高应用程序的性能和响应速度,开发人员需要采取一些策略。其中之一就是使用缓存机制。Laravel作为一款流行的PHP框架,提供了一套强大的缓存机制,可以帮助我们加速应用程序的响应时间。本文将详细介绍Laravel缓存机制的使用方法

如何在FastAPI中使用缓存来加速响应的速度如何在FastAPI中使用缓存来加速响应的速度Jul 28, 2023 pm 08:17 PM

如何在FastAPI中使用缓存来加速响应的速度引言:在现代Web开发中,性能是一个重要的关注点。如果我们的应用程序不能快速地响应客户请求,可能会导致用户体验的下降甚至用户流失。而使用缓存是一个提高Web应用程序性能的常见方法之一。在本文中,我们将探讨如何使用缓存来加速FastAPI框架的响应速度,并提供相应的代码示例。一、什么是缓存?缓存是一种将经常被访问的

如何使用Numba加速Python程序的数值计算如何使用Numba加速Python程序的数值计算Aug 02, 2023 pm 05:37 PM

如何使用Numba加速Python程序的数值计算引言:在进行数值计算时,Python是一种非常灵活和易于使用的语言。然而,由于Python是一种解释型语言,它的运行速度相对较慢,特别是在密集的数值计算任务中。为了提高Python程序的性能,我们可以使用一些优化工具和库。其中一个非常强大的库是Numba,它可以在不改变Python代码结构的情况下,使用即时编译

如何解决Win7电脑网速缓慢问题如何解决Win7电脑网速缓慢问题Jan 04, 2024 am 09:17 AM

很多使用win7系统电脑的小伙伴,发现使用电脑的时候发现网速特别慢。这是什么情况呢?可能是你网络设置里面对网络有一定的限制,今天小编教你们如何解除网络限制,让网速变得极快,只要选择高级设置里面将其值更改为“20MHz/40MHzauto”即可,具体的教程一起来看看吧。提升win7电脑网速的方法1.小编这里以win7系统为例说明,鼠标右键桌面任务栏右侧的“网络”图标,选择“网络和共享中心”打开。2.在新出现的界面中点击“更改适配器设置”,然后鼠标右键“本地连接”选择“属性”打开。3.在打开的“本地

如何配置Nginx代理服务器以加速Web服务的响应时间?如何配置Nginx代理服务器以加速Web服务的响应时间?Sep 05, 2023 pm 03:24 PM

如何配置Nginx代理服务器以加速Web服务的响应时间?引言:在今天的互联网时代,快速响应的Web服务对于用户体验至关重要。而Nginx作为一款高性能的轻量级反向代理服务器,可以有效地提高Web服务的响应速度。本文将介绍如何配置Nginx代理服务器以加速Web服务的响应时间,并结合代码示例进行详细说明。第一部分:安装和配置Nginx代理服务器安装Nginx首

Vue中如何配置和使用CDN进行加速Vue中如何配置和使用CDN进行加速Oct 15, 2023 pm 02:31 PM

Vue中如何配置和使用CDN进行加速在Vue项目中,使用CDN(ContentDeliveryNetwork)可以有效地加速网页加载速度,提升用户体验。CDN技术通过将静态资源文件分发到全球各个地点的服务器上,使用户可以从离用户最近的服务器上快速获取资源,减少了数据传输的时间和延迟。下面将详细介绍Vue中如何配置和使用CDN进行加速。首先,我们需要找到一

win7开机怎么优化加速win7开机怎么优化加速Dec 26, 2023 pm 01:11 PM

如果我们的电脑上安装的操作系统是win7,那么有的小伙伴在使用的过程中如果遇到了开机时间变长的话,想要对自己的电脑进行优化,首先我们可以尝试在电脑中进行相关的设置,关闭一些开机启动项。或者是通过使用第三方加速软件来进行相关的优化即可。详细步骤就来看下小编是怎么做的吧~win7开机怎么优化加速1、电脑桌面不要放太多文件和图标,会使电脑反应变慢的,软件尽量不要安装在c盘。2、尽量设置ip为静态ip,可以减少电脑开机启动时间和进入桌面后的反映时间。3、现在的系统,占内存也比较大,有必要的话,加多条内存

PHP实现CDN加速的方法及应用PHP实现CDN加速的方法及应用Jun 18, 2023 pm 06:42 PM

随着互联网的迅速发展,网站访问速度越来越受到重视,而CDN(ContentDeliveryNetwork)就是目前最常用的加速网站访问的技术之一。CDN加速通过多个服务器分布在不同地点,将用户的请求转发到离用户较近的服务器上,以此来加快网站的访问速度。在实现CDN加速中,PHP是一种常用的开发语言。本文将介绍如何使用PHP来实现CDN加速,以及应用于实际

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。