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 Plupload上传插件的使用
Apr 19 jQuery
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
Jquery EasyUI $.Parser
Jun 02 jQuery
jQuery实现一个简单的验证码功能
Jun 26 jQuery
jquery学习笔记之无new构建详解
Dec 07 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
Jquery动态列功能完整实例
Aug 30 jQuery
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
jQuery操作元素追加内容示例
Jan 10 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 获取本地IP代码
2013/06/23 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
js 上传图片预览问题
2010/12/06 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
在python中pandas的series合并方法
2018/11/12 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
python实现实时视频流播放代码实例
2020/01/11 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
纽约海:Sea New York
2018/11/04 全球购物
法院实习人员自我鉴定
2013/09/26 职场文书
物业门卫岗位职责
2013/12/28 职场文书
公务员年度个人总结
2015/02/12 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
Python读写yaml文件
2022/03/20 Python