jQuery实现的背景颜色渐变动画效果示例


Posted in jQuery onMarch 24, 2017

本文实例讲述了jQuery实现的背景颜色渐变动画效果。分享给大家供大家参考,具体如下:

完整实例代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>背景颜色渐变</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
</head>
<body>
<input id="Button1" type="button" value="button" onclick="tggg()" />
<script>
  function tggg() {
    //$("#asd").css({ "background-color": "red" }).show().fadeOut(500);
    fadeColor(
    { r: 0, g: 255, b: 0 }, //star color
    {r: 255, g: 255, b: 255 }, //end color
    function (color) { document.getElementById("asd").style.backgroundColor = color; }, 1, 10);
  }
  //所有代码的执行时间只有24毫秒左右。
  function fadeColor(from, to, callback, duration, totalFrames) {
    //用一个函数来包裹setTimeout,根据帧数来确定延时
    function doTimeout(color, frame) {
      setTimeout(function () {
        try {
          callback(color);
        } catch (e) { JSLog.write(e); }
      }, (duration * 1000 / totalFrames) * frame);
      //总持续秒数/每秒帧数*当前帧数=延时(秒),再乘以1000作为延时(毫秒)
    }
    // 整个渐变过程的持续时间,默认为1秒
    var duration = duration || 1;
    // 总帧数,默认为持续秒数*15帧,也即每秒15帧
    var totalFrames = totalFrames || duration * 15; var r, g, b; var frame = 1;
    //在第0帧设置起始颜色
    doTimeout('rgb(' + from.r + ',' + from.g + ',' + from.b + ')', 0);
    //计算每次变化所需要改变的rgb值
    while (frame < totalFrames + 1) {
      r = Math.ceil(from.r * ((totalFrames - frame) / totalFrames) + to.r * (frame / totalFrames));
      g = Math.ceil(from.g * ((totalFrames - frame) / totalFrames) + to.g * (frame / totalFrames));
      b = Math.ceil(from.b * ((totalFrames - frame) / totalFrames) + to.b * (frame / totalFrames));
      // 调用本frame的doTimeout
      doTimeout('rgb(' + r + ',' + g + ',' + b + ')', frame); frame++;
    }
  }
</script>
<div style="width: 600px; height: 200px; border: 1px solid red;" id="asd">
  三水点靠木欢迎各位光临--https://3water.com
</div>
</body>
</html>
jQuery 相关文章推荐
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
Mar 21 jQuery
jQuery查找dom的几种方法效率详解
May 17 jQuery
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
jQuery 防止相同的事件快速重复触发方法
Feb 08 jQuery
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 jQuery
jQuery与原生JavaScript选择HTML元素集合用法对比分析
Nov 26 jQuery
jQuery实现动态操作table行
Nov 23 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
jquery插件实现图片悬浮
Apr 16 jQuery
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
Mar 24 #jQuery
jQuery编写textarea输入字数限制代码
Mar 23 #jQuery
jquery实现全选、全不选以及单选功能
Mar 23 #jQuery
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
Mar 23 #jQuery
纯jQuery实现前端分页功能
Mar 23 #jQuery
JQuery 进入页面默认给已赋值的复选框打钩
Mar 23 #jQuery
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
Mar 23 #jQuery
You might like
php at(@)符号的用法简介
2009/07/11 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
php递归调用删除数组空值元素的方法
2015/04/28 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
JS event使用方法详解
2008/04/28 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
ES6入门教程之Class和Module详解
2017/05/17 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python算法题 链表反转详解
2019/07/02 Python
python实现程序重启和系统重启方式
2020/04/16 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
社团活动总结范文
2014/04/26 职场文书
学雷锋标语
2014/06/25 职场文书
nginx内存池源码解析
2021/11/20 Servers
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
使用MybatisPlus打印sql语句
2022/04/22 SQL Server