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 submit()不能提交表单的解决方法
Apr 24 jQuery
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
May 19 jQuery
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 jQuery
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
JQuery中queue方法用法示例
Jan 31 jQuery
jquery图片预览插件实现方法详解
Jul 18 jQuery
JQuery中的常用事件、对象属性与使用方法分析
Dec 23 jQuery
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
jQuery实现简单三级联动效果
Sep 05 jQuery
jQuery实现增删改查
Dec 22 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实现的九九乘法口诀表简洁版
2014/07/28 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
numpy自动生成数组详解
2017/12/15 Python
python+opencv实现动态物体追踪
2018/01/09 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
Python实现括号匹配方法详解
2020/02/10 Python
Python urllib2运行过程原理解析
2020/06/04 Python
Python操作Excel的学习笔记
2021/02/18 Python
微电影大赛策划方案
2014/06/05 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
工程承包协议书
2014/10/20 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
《开国大典》教学反思
2016/02/16 职场文书