jq实现数字增加或者减少的动画

yizhihongxing

jq实现数字增加或者减少的动画

在前端开发中,经常需要实现数字的动画效果,例如,实现购物车中商品数量的增加或减少动画效果,本文将介绍如何使用jQuery实现这种数字动画效果。

小数点增加动画效果实现

首先,我们来实现小数点增加的动画效果。下面是一个DIV元素,其中显示一个初始值为12.34的数字:

<div id="num">12.34</div>

因为数字增加是在小数点位上实现的,我们先将整数部分和小数部分分开处理,使用split方法,将整数部分和小数部分分别存入begain_int、begain_dec两个变量中:

var num = $('#num').text();
var begain_int = parseInt(num).toFixed(0);
var begain_dec = parseInt(num.split(".")[1]).toFixed(2);

接着,定义一个变量end,存入我们期待的数字结果:

var end = 15.67;

通过比较end和begain_dec,我们就可以判断数字是增加还是减少:

var add = true; //增加
if (end < num) {
    add = false; //减少
}

因为动画实现会多次执行,所以我们定义一个执行动画的函数,名称为drawNumber,并且实现非常简单,只是将元素的text属性动态赋值,同时使用toFixed方法保留小数点后两位:

function drawNumber(num_val) {
    $('#num').text(num_val);
}

紧接着,我们定义一个动画执行函数increase,它可以根据我们的需求实现增加或减少的动画效果:

function increase(begin, end, add) {
    if (begin > end) {
        begain_dec = begain_dec - 1;
        if (begain_dec < 0) {
            begain_int = begain_int - 1;
            if (begain_int < 0) {
                begain_int = 0;
                begain_dec = 0;
            } else {
                begain_dec = 99;
            }
        }
    } else {
        begain_dec = begain_dec + 1;
        if (begain_dec > 99) {
            begain_int = begain_int + 1;
            if (begain_int > end) {
                begain_int = end;
                begain_dec = 0;
            } else {
                begain_dec = 0;
            }
        }
    }
    var current = begain_int + "." + begain_dec;
    drawNumber(current);
    if ((add && current >= end) || (!add && current <= end)) {
        drawNumber(end.toFixed(2));
        return;
    }
    setTimeout(increase.bind(this, begin, end, add), 20);
 }

接下来,我们只需要在实际代码中调用increase函数,即可实现数字增加或者减少的动画效果:

increase(parseInt(num), end, add);

整数值增加动画效果实现

在实际开发中,我们通常需要实现整数值的增加和减少的动画效果,这时我们需要一点改变。

首先,我们定义一个整数的开始值和结束值:

var num = $('#num').text(),
    begin = parseInt(num),
    end = 50,
    add = true;
if (begin > end) {
    add = false;
}

然后,定义动画执行函数increase:

function increase(begin, end, add) {
    if (add) {
        begin = begin + 1;
        if (begin > end) {
            begin = end;
        }
    } else {
        begin = begin - 1;
        if (begin < end) {
            begin = end;
        }
    }
    drawNumber(begin);
    if ((add && begin >= end) || (!add && begin <= end)) {
        drawNumber(end);
        return;
    }
    setTimeout(increase.bind(this, begin, end, add), 20);
}

最后,我们只需要在实际代码中调用increase函数即可实现整数值的增加和减少的动画效果:

increase(begin, end, add);

到此为止,我们已经实现了数字的增加和减少动画效果。以上代码使用了jQuery,如果没有引入jQuery库需要先引入。

代码还可以进一步优化,例如,将相同的代码提取出来封装成函数等等。

总结

本文介绍了如何使用jQuery实现数字增加或减少的动画效果,分别针对整数和小数点实现进行了介绍。

这种动画效果在页面设计中应用广泛,如购物车物品数量变更、评分星星的增加等等。使用本文所述实现方法,可以优化前端用户体验,让网站更加生动活泼。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jq实现数字增加或者减少的动画 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • Win11玩LOL提示无法初始化图形设备怎么解决?

    Win11玩LOL提示无法初始化图形设备怎么解决? 当在Windows 11上尝试启动LOL时,可能会收到“无法初始化图形设备”的错误提示。这个问题通常是由于兼容性或驱动程序问题引起的,以下是解决该问题的攻略。 步骤一:更新图形驱动程序 打开“设备管理器”,找到“显示适配器”。 右键单击您的显卡,然后选择“更新驱动程序”。 选择“自动搜索更新的驱动程序”并等…

    other 2023年6月20日
    00
  • h5plus/h5+规范使用 模块索引 教你如何去看h5+的手册

    h5plus/h5+规范使用 模块索引 教你如何去看h5+的手册 什么是H5+规范? H5+是一款基于HTML5标准的开发框架,也是目前主流移动端APP开发的选择。H5+提供了丰富的原生API接口,可以让开发者较为方便地完成应用开发的任务。H5+是由DCloud公司开发,得到了越来越多的开发者的支持。 H5+手册 为了帮助开发者更好地了解和使用H5+,DCl…

    其他 2023年3月28日
    00
  • Android 对话框(Dialog)大全详解及示例代码

    Android 对话框(Dialog)大全详解及示例代码 什么是 Android 对话框(Dialog)? Android 对话框(Dialog)是一种常用的用户界面元素,用于向用户显示重要信息、接收用户输入或进行用户确认。对话框通常以弹出窗口的形式出现,覆盖在当前活动或片段之上。 常见的 Android 对话框类型 1. 提示对话框(AlertDialog…

    other 2023年8月23日
    00
  • C语言数据结构创建及遍历十字链表

    C语言数据结构创建及遍历十字链表 什么是十字链表 十字链表是一种二维数据结构,常用于表示稀疏矩阵,它是在链式储存结构的基础上,将正反两个方向都链起来,形成一个交叉的链表。 十字链表的创建 在创建十字链表时,我们需要定义两种结构: //行结点 typedef struct CrossRowNode{ int row; //行下标 int col; //列下标 …

    other 2023年6月26日
    00
  • Nginx下SSL证书安装部署步骤介绍

    下面是“Nginx下SSL证书安装部署步骤介绍”的攻略: 1. 生成SSL证书 首先需要在服务器上生成SSL证书,可以通过以下命令来生成: $ mkdir -p /etc/nginx/ssl $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.k…

    other 2023年6月27日
    00
  • 魔兽世界8.0惩戒骑输出循环优先级介绍 惩戒骑输出手法

    魔兽世界8.0惩戒骑输出循环优先级介绍 1. 输出循环介绍 惩戒骑士在8.0版本中的输出循环优先级为:审判 >愤怒之锤>十字军打击(J)>断筋者(CS)>公正之剑(TV)>Exorcism(Exo)>奉献(CF)。 在战斗中,惩戒骑士需要尽量保证审判和愤怒之锤在每个冷却周期内能够有效施放。同时,需要优先使用有强化效果的技能…

    other 2023年6月27日
    00
  • 解析php类的注册与自动加载

    解析PHP类的注册与自动加载是一个非常重要的PHP开发技巧,能够帮助我们更好地管理和组织自己的代码,并提高代码的可维护性。下面是详细的攻略。 注册PHP类 在PHP中注册一个类非常简单,只需要使用PHP的内置函数spl_autoload_register()即可。这个函数可以用来注册一个自定义的自动加载函数,当系统在加载类的时候找不到对应的文件的时候,就会调…

    other 2023年6月25日
    00
  • Web.config(应用程序的配置信息)总结

    当我们开发Web应用时,我们经常需要配置很多信息,例如数据库连接字符串、异常处理、授权验证等等。对于ASP.NET/Web应用来说,我们可以使用Web.config文件来存储这些配置信息。下面是Web.config配置文件的一些重要关键点。 Web.config文件的位置 Web.config文件通常位于Web应用的根目录下。当Web应用启动时,它会自动加载…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部