热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于前端web使用CSS和JavaScript实现数字自动增长和部分效果动画自动变化的效果

使用场景在界面载入的时候,需要根据获取到的数据,实现数字自动变化到数据的数值或动画变化为数据相关的效果(比如数字从0变化到100,电池电量从固定位置变化到一定的位置时的动画)的

关于前端web使用CSS和Javascript实现数字自动增长和部分效果动画自动变化的效果

使用场景

  在界面载入的时候,需要根据获取到的数据,实现数字自动变化到数据的数值或动画变化为数据相关的效果(比如数字从0变化到100,电池电量从固定位置变化到一定的位置时的动画)的时候。

主要使用到的方法和属性

  JS:setInterval(定时器)、clearInterval(在数据或动画到达指定位置时停止)、innerText(配合定时器输入文本)

  CSS:transition(使用过渡效果实现动画,比较简单)、animate(使用动画效果实现动画,可以用,但没必要,对于复杂的动画时比较实用)

实现思路

  1.数字自动增长

  我目前想到的唯一方法就是在setInterva方法中使用innerText输入数值,然后当数值和数据一致的时候停止setInterval,以达到数值变化到指定数据的效果。

  实现代码

var yuanshu = 0 //数据变化前的初始数值
const re = 50 //获取到的数据
var numAdd = setInterval(numAdd,10)
function numAdd(){
    yuanshu = yuanshu + 1 //数据变化的间隔
    document.getElementById("num").innerText = yuanshu
    if(yuanshu == re){ //检验数值是否到达数据的数值
      window.numStop()
 }
}
function numStop(){ //停止计时器 window.clearInterval(numAdd) }

  2.动画根据数值自动变化

  这个其实除了使用css的过渡和动画,我最初想到使用JS的定时器不断修改元素的样式来实现动画的效果,但经过实践,效果实在比不上css,或许经过调整还是可以实现看起来比较流畅的效果,但属实有点脱裤子放屁的意思了。因此这里就不做介绍了(其实就是把上面的innerText修改成修改样式)。

  这里就主要以电池电量增加作为例子好了。(效果大概就像下面这张图)

  

  电池电量变化的动画其实算比较单一的,只需要改变绿色容器的宽度(竖直摆放的话也可以时高度),只需要通过JS访问绿色容器相关的元素并改变宽度(高度)为指定的百分比就可以(注意,这里绿色容器的父容器请务必设置固定的宽度,我怕容易出事儿)。

  实现代码(包含了数字增长的代码)


    
        
        
        
    
    
    
    

第一次写这种东西,有看不懂的话。。。。只能说小生不才请见谅。如果可以的话请在评论区留下您的建议和问题。


推荐阅读
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
author-avatar
伊人怀想
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有