js学习笔记 —— 动画封装

【JavaScript-动画原理】如何使用js进行动画效果的实现 利用js实现动画效果 阅读详情

动画函数封装

//配合下面函数使用
/* 
    * 样式查询
    * el:dom对象
    * styleStr:样式的名字
*/
function getStyle(el, attr) {
    if (window.getComputedStyle) {
        //其它浏览器
        return window.getComputedStyle(el)[attr]
    } else {
        //ie8及以下的
        return el.currentStyle[attr]
    }
}

/*
    * 动画函数
    * el 操作的对象
    * attr属性值
    * terhet目标位置
    * speed速度
    * callback回调函数
*/
function move(el,attr,target,speed,callback) {
    // 关闭计时器
    clearInterval(el.interId);
    // 调用函数查询当前位置并将结果转化成数字
    let currentVlaue = parseInt(getStyle(el,attr));
    /* 
        * 判断变化方向
        * spaeed如果大于currentVlaue则表示向左或上移动应为减
        * 反之则加
    */
    if(currentVlaue > target) {
        speed = - speed;
    }
    // 动画执行过程
    el.interId = setInterval(function () {
        // 获取元素当前位置
        let oldValue = parseInt(getStyle(el, attr)),
            // 计算移动后的新位置
            newValue = oldValue + speed;
        // 判断当前位置与目标位置的关系
        if (speed > 0 && newValue >= target || speed < 0 && newValue <= target) {
            newValue = target;
        }
        // 将位置改为新位置
        el.style[attr] = newValue + "px";
        // 判断是否到达目标位置
        if (newValue === target) {
            // 关闭计时器
            clearInterval(el.interId)
            // 判断是否有回调函数等同于下面注释掉的方式
            callback && callback()
            // if(callback){
            //   callback()
            // }
        }
    }, 30);
}
JavaScript动画函数封装 文章目录动画函数封装:每0.02s移动10px案例:匀速运动案例:变速运动动画 动画函数封装:每0.02s移动10px <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, 阅读详情

相关推荐

用JS封装一个简单的动画函数(超详细)

用JS封装一个简单的动画函数 函数封装_01 文章目录用JS封装一个简单的动画函数PC端网页特效一、元素偏移量offset系列1-1. offset系列的常用属性1-2. offset 与 style二、元素可视区client系列三、元素滚动scroll系列三大系列总结动画函数的封装1-1. 动画函数的实现原理1-2. 动画缓动效果原理1-3. 动画函数添加回调函数(callback)1-4. 节流阀 PC端网页特效 首先,你要先了解以下知识点 一、元素偏移量offset系列 offset翻译过来就

Little_monster_1的博客 1708

JS 列表拖拽排序+flip动画

【代码】JS 列表拖拽排序+flip动画。

小诏 746

flip:flip经典翻转时钟的在线版本

倒计时 Flip是一个高级而精美的翻转计数器插件。 易于使用且高度灵活,您可以在几分钟内在您的网站上设置自定义计数器。 显示访问者计数,倒计时到一个特殊的日期或庆祝进度。 无论您计划什么,都可以无休止地选择。 用 :red_heart: 快速开始 如果您只是想上路,请复制example目录并使用它作为起点。 该示例将自动初始化网站上的Flip计数器,并可以与一起使用。 或者,您可以使用以下javascript框架代码和框之一: 设置 对于下面的代码段,我们假设它是flip.min.css和flip.min.js版本,我们要上传到的文件夹名为flip 。 将以下HTML代码段复制到网页的<head>中。 < link href =" /flip/flip.min.css " rel =" stylesheet " > 然后复制以下代码片段,并将其放在</body>标记之前。 < script

让动画变得更简单之FLIP技术

某次被问到如何实现以下动画效果: 若干个元素卡片从上而下排列,当增加或删除某个卡片的时候,其余的卡片会以一种 transition动画的形式移动到适当的位置上,而不是生硬地闪现 当时我恰好看过 Vue中的内置组件 transition的实现,意识到完全可以用 transition组件的部分原理来完成这个效果,但是由于没有深入地探究过为什么是这样,只停留在表面,知其然而不知其所以然,所以尽管我知道...

weixin_33754065的博客 883

西门子OMAC PackML V2022在S7-1200/S7-1500中的状态机设计与应用实践

本文详细解析了西门子OMAC PackML V2022在S7-1200/S7-1500中的状态机设计与应用实践。通过实际案例和代码示例,介绍了状态机的基础认知、硬件配置、逻辑开发、调试技巧以及与MES系统集成的高级应用,帮助工程师高效实现设备自动化控制。

weixin_29255731的博客 531

微生物组β-多样性——PCoA分析及可视化

让你的数据映入眼帘

qq_47369980的博客 1万+

【亲测免费】 探索 FlipJS:一款高效、轻量级的前端动画库

是 Google Chrome 团队开发的一个小型 JavaScript 库,专门用于创建流畅、性能优秀的前端动效。这款工具旨在简化 CSS3 变换和过渡的使用,让开发者能够更方便地实现2D和3D转换效果,提升用户体验。 ## 技术分析 FlipJS 的核心是其背后的数学算法。它利用了浏览器的原生 `requestAnimationFrame` API 来保证动画的流畅性,并通过计算元素在每一...

gitblog_00024的博客 953

MAIXCAM无线连接实战:5分钟搞定远程调试与代码烧录(避坑版)

本文提供了一份详细的MAIXCAM无线连接实战指南,帮助嵌入式视觉开发者快速配置远程调试与代码烧录。文章重点介绍了通过MaixHub IDE进行Wi-Fi配置、建立远程终端连接、使用SFTP进行文件传输以及管理自启动应用程序的完整流程,并针对IP地址变动、信号中断等常见问题提供了实用的避坑解决方案,旨在提升开发效率与灵活性。

weixin_29188043的博客 298

JS 动画基础: 细说 requestAnimationFrame

JS 动画基础: 细说 requestAnimationFrame 文章目录JS 动画基础: 细说 requestAnimationFrame简介参考完整示例代码正文`setInterval` 实现动画`setInterval` 的限制`requestAnimationFrame` 实现动画rAF 基础实现rAF 定时调用:timestamprAF 取消回调:`cancelAnimationFrame`渲染、动画分离最终封装版本`requestAnimationFrame` 特性 & 使用注意事项结

超悠閒的博客 991

NGSIM数据集字段解析:从车辆轨迹到交通行为分析

本文深度解析NGSIM数据集的核心字段及其在交通行为分析中的应用。详细解读了车辆时空定位、状态属性及交互关系等关键字段,并通过高速路“幽灵堵车”和城市路口左转行为两个实战案例,展示了如何利用该数据集进行微观交通行为建模与驾驶特征提取,为交通流研究和自动驾驶算法测试提供数据基础。

weixin_29172963的博客 147

SAP-ABAP:SAP HANA性能神器FDA:是极速查询的引擎,也是CPU过载的元凶

在SAP S/4HANA的世界里,有一个被ABAP开发者们既爱又怕的特性——Fast Data Access(FDA),它能将性能提升百倍,也能让CPU瞬间飙升。本文将带您全面解剖这一核心机制。

baidu_35680696的博客 849

【亲测免费】 推荐使用FLIP.js:高效流畅的动画库

**FLIP.js** 是一个专为实现[FLIP动画](https://aerotwist.com/blog/flip-your-animations)而设计的帮助类库。它通过转换来优化宽度、高度、left和top等昂贵属性的动画效果,从而提高性能并创建出流畅的用户体验。 ## 项目介绍 简单来说,FLIP代表"First"、"Last"、"Invert"和"Play"四个步骤。首先记录元素的...

gitblog_00043的博客 805

Buildroot RK3568系统中更改GPU驱动为:panfrost

1:Kernel中开启Panfrost 2:更新mesa 到mesa-24.0.2 3:查看/proc/interrupts 中的panfrost 中断 4:LInux启动日志 5:查看GPU负载

OpenWrt/WLAN/驱动/Android/嵌入式开发总结 2078

前端学习笔记-JS-BOM-动画函数封装

动画实现原理 核心原理:通过定时器setInterval()不断移动盒子位置 实现步骤: 1. 获得盒子当前位置 2. 让盒子在当前位置加上1个移动距离 3. 利用定时器不断重复这个操作 4. 加一个结束定时器的条件 5. 注意此元素需要添加定位, 才能使用element.style.left <script> var div = document....

qq_36434637的博客 308

【使用DeepSeek辅助Python接口性能自动化测试教程-实战教程】

访问DeepSeek官方网站,注册账号并获取API Key。此Key是调用DeepSeek API的必要凭证,务必妥善保管。安装时,注意勾选“Add Python to PATH”选项,以便系统能识别Python命令。确保你已安装Python 3.8或更高版本。会自动发现并执行所有以。

Dreams°的博客 2466

2024年上半年试题二:论性能测试方法及其应用

2025年1月,我以系统分析师的身份参与了公司OA系统的开发与建设。该系统包含的功能有打卡签到、公文流转、工资查询等。我们吸取了之前由于系统使用人数激增暴露出的短时间卡顿等问题,所以在本次开发中,我们非常重视系统的性能测试。通过自动化的测试工具模拟多种正常、峰值及异常负载条件对系统的各项性能指标进行测试。性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样,常见的负载测试和压力测试都属于性能测试。

银帅 548

[JS-DOM BOM学习笔记]元素offset,client,scroll系列与动画函数封装

PC端网页特效目标元素偏移量offset系列offset与style区别案例:获取鼠标在盒子内的坐标案例:模态框拖拽案例:仿京东放大镜效果页面元素可视区client系列匀速滚动scroll系列动画函数封装常见网页特效案例 目标 能够说出常见offset系列属性的作用 能够说出常见client系列属性的作用 能够说出常见scroll系列属性的作用 能够封装简单动画函数 能够写出网页轮播图案例 元素偏移量offset系列 offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的

あなたの可愛い41 315

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JavaScript实现动画效果

在一些动画设置中,我们可以用CSS中已有的动画属性方便的设置动画效果,比如说animation动画,transition过渡,它们结合一些2D,3D变换可以达到可观的动画效果,但是涉及到更多更加复杂的动画这个时候我们还要基于JavaScript实现。在这里我们定义一个JavaScript中一个实用的函数以便今后的设置。 动画基础 (1)定时器setTimeout 动画的设置是在一个连续间隔的时间...

A-Select ° 1316

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[JavaScript] 动画函数的封装

文章目录动画实现原理核心原理:实现步骤:js的动画:css的动画:动画函数简单封装给不同对象添加不同的定时器核心原理:代码示例:缓动动画原理思路:实现效果:代码示例:动画函数添加回调函数回调函数原理:示例代码:实现效果:动画函数封装到单独js文件里面 当我们学习了动画之后,我们就能做各种各样的网页特效了。有的同学总是杠,js能做的动画css也能做。首先你是来学js的没必要杠,css的灵活度远不如js,其次做网页轮播图等特效时用js是不是方便的多 动画实现原理 核心原理: 通过定时器setInterval()

qq_49900295的博客 1527

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JavaScript之动画函数封装

动画函数一、动画函数原理 一、动画函数原理 核心原理:通过定时器 setInterval() 不断移动盒子位置。 实现步骤: 获得盒子当前位置 让盒子在当前位置加上1个移动距离 利用定时器不断重复这个操作 加一个结束定时器的条件 注意此元素需要添加定位,才能使用element.style.left 如下所示: ...

m0_48375854的博客 3254

js-网页特效 —— 动画函数封装

四、动画函数封装 4.1、动画实现原理 核心原理:通过定时器setInterval0不断移动盒子位置。 实现步骤: 1.获得盒子当前位置。 2.让盒子在当前位置加上1个移动距离。 3.利用定时器不断重复这个操作 4.加一个结束定时器的条件 5.注意:此元素需要添加定位,才能使用element.style.left 4.2、动画函数的封装 注意函数需要传递2个参数,动画对象和移动到的距离。 4.3、动画函数给不同元素记录不同定时器 如果多个元素都使用这个动画函数,每次都要var声明定时器。我们可以给不同的元素

mocoll的博客 357

FLIP.js 安装和配置指南

### 项目基础介绍 FLIP.js 是一个帮助开发者实现 FLIP 动画的辅助库。FLIP 是一种动画技术,通过将昂贵的属性动画(如宽度、高度、左和上)重新映射到更便宜的变换动画,从而提高动画性能。FLIP 代表 First、Last、Invert、Play,即首先记录元素的初始位置和状态,然后记录最终位置和状态,通过变换将元素反转回初始位置,最后播放动画。 ### 主要编程语言 FLIP.j...

gitblog_07394的博客 620

推荐开源项目:FLIP.js —— 动画翻转的新纪元

在寻找一种能高效处理复杂动画的技术吗?让我们一起探索FLIP.js——一个专为实现FLIP(First, Last, Invert, Play)动画设计的辅助库。这个开源项目由Paul Lewis创建,并非官方Google产品,但它已经在JavaScript社区中引起了广泛的关注。 ## 项目介绍 FLIP.js旨在通过将原本昂贵的属性动画(如宽度、高度、left和top)转换为更经济的tra...

gitblog_00484的博客 620

flip.js 实现5分钟倒计时

flip.js 实现5分钟倒计时显示

1199

js结合flip动画实现拖拽排序功能

这段代码实现了一个可拖拽的列表功能。通过HTML、CSS和JavaScript结合,用户可以拖动列表项来重新排序。列表项在拖动时会显示灰色背景,并在拖动过程中通过translateY实现平滑的过渡效果。代码主要分为以下几个部分: HTML结构:包含一个div容器,用于显示列表项。 CSS样式:定义了列表项的外观,包括背景色、圆角、字体等,并为拖动状态添加了特殊样式。 JavaScript逻辑: 数据渲染:根据数据动态生成列表项,并设置可拖拽属性。 拖拽事件处理:通过ondragstart、ondragent

qq_40891322的博客 187

FLIP.js:打造高性能Web动画的终极指南 [特殊字符]

在当今追求极致用户体验的Web开发世界中,**FLIP.js** 作为一个轻量级但功能强大的JavaScript动画库,正在成为前端开发者的秘密武器。这个开源项目基于著名的FLIP动画技术,能够帮助开发者轻松实现流畅、高性能的动画效果,让你的Web应用瞬间脱颖而出! ## 什么是FLIP动画技术? 🤔 FLIP代表**First、Last、Invert、Play**,这是一种革命性的动画方法

gitblog_00035的博客 464
下一篇: js学习 —— 封装的函数
Small_sapling
博客等级 码龄7年 7粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值