1. 首页 > 知识

javascript颜色渐变效果的实现代码

javascript颜色渐变效果的实现代码

问:javascript颜色渐变效果的实现代码

来自广东省信宜市的网友药王芷冬的解答:

  以下是博客作者的一些想法和解决方案。如果您对它不感兴趣,可以直接使用jQuery插件。
思维
每个颜色由RGB组成,每两位是16个十进制数。
当颜色代码和目标颜色代码转换为10个二进制数时,它们之间有区别。
  总执行时间步数由差值设置,计算每个步骤的10位数。
使用计时器执行
简单地说,它是将6位彩色代码转换为两位10位,然后计算两对RGB值之间的差异。根据设定步长(执行时间),计算每一步需要增加或减少的RGB值,最后将其转换为目标颜色的RGB值。
  
有待解决的问题
将6位颜色代码转换为10
根据步长计算每一步或减少值。
用定时器执行这个增加或减少的操作
1。将6位颜色代码转换为10
对于16到10的转化,学校的教科书已被告知,0平方的位×16、1平方米的十位×16,等等。
  颜色由RGB,每两个为一组,如:# 123456,r = 12,G = 34,B = 56,但RGB值是10进制的,所以R = 12,只能说是一个对应于12至10的229位置:2 * 1 + 1 * 16 = 18 * 1 + 3 *,34:4 16 = 52 * 1 + 5 * 16 56:6 = 96、RGB = { 18,52,96 }。
  
这是一个数字,但16是A-F,所以你得把A-F 10-15首先,你可以先使用一个数组来保存总数的16。
复制代码代码如下所示:
新数组();
F { 0} = 0;
{ 1 } = F 1;
{ 2 } = F 2;
{ 3 } = F 3;
{一} = 4的F;
F { } = 5年;
F { } = 6英尺6英寸;
F { } = 7年;
F { 8} = 8;
F { } = 9年;
F {'a' } = 10;
F { B } = 11;
{ } = 12 C F;
f = } = 13;
F { e } = 14;
F,F = 15 } {;
因为颜色代码不区分大小写,所以您可以首先将所有颜色转换为大写。
  
复制代码代码如下所示:
(代码的代码。tolocaleuppercase); / /转换为大写
然后16转换为10。
/ /编码是6位的颜色代码,如f07786;
代码{ { 0 } } * 16 + f { {代码} 1 };
代码{ { 2 } } * 16 + f { {代码} 3 };
var {代码{ 4 } } * 16 + f { {代码} 5 };
整个转换代码是作为一种方法编写的。
  
复制代码代码如下所示:
功能彩色(代码){
VaR len = code。length;
新数组();
F { 0} = 0;
{ 1 } = F 1;
{ 2 } = F 2;
{ 3 } = F 3;
{一} = 4的F;
F { } = 5年;
F { } = 6英尺6英寸;
F { } = 7年;
F { 8} = 8;
F { } = 9年;
F {'a' } = 10;
F { B } = 11;
{ } = 12 C F;
f = } = 13;
F { e } = 14;
F,F = 15 } {;
(代码的代码。
  tolocaleuppercase); / /转换为大写
var = code。substr(0,1);
如果(S = =#){
代码= code。substr(1,6);
}
代码{ { 0 } } * 16 + f { {代码} 1 };
代码{ { 2 } } * 16 + f { {代码} 3 };
var {代码{ 4 } } * 16 + f { {代码} 5 };
返回{,g,b };
}
的代码,用以判断与#颜色代码,就会被删除,并返回一个包含RGB值的数组
增加或减少步骤的计算。
  
例如,设置颜色的数量变化10次,你需要计算10的变化,又是多少次的RGB值。使用当前颜色和RGB颜色的RGB值差的绝对值,然后除以10,你可以得到一个步骤,但这价值可能是小数,可以把小数舍入的数值变化,然后最后一步,直接在RGB颜色值的目标线
复制代码代码如下所示:
无功_step = 10;
无功_r_step = parseInt(Math。
  abs(_thisrgb { 0 } - _torgb { 0 }) / _step);增加和 / / R减少步
无功_g_step = parseInt(Math。abs(_thisrgb { 1 } - _torgb { 1 }) / _step);增加和减少步 / /克
无功_b_step = parseInt(Math。
  abs(_thisrgb { 2 } - _torgb { 2 }) / _step);增加和 / / B减少步
每次执行的增减
如果执行死刑的人数是10,这是连续10次执行,当_step = 1完成,即使执行完毕。
  然后,在增加和减少的一步,它会出现。如果_step = 10,然后是1倍的增加和减少的步长。如果_step = 9是第二步,然后增减2倍步长,直到_step = 1,增加或减少9倍步长。在这里你可以使用这样一个简单的计算
复制代码代码如下所示:
var步骤= 10;
无功_step =步;
循环体
var s =(步_step)+ 1;
_step --;
然后确定当前颜色RGB值和目标RGB是否增加或减少。
  
复制代码代码如下所示:
VAR r = _step = = 1_torgb { 0 }:(_thisrgb { 0 } >_torgb { 0 } _thisrgb { 0 } - _r_step *:_thisrgb { 0 } + _r_step *);
var g = _step = = 1_torgb { 1 }:(_thisrgb { 1 } >_torgb { 1 } _thisrgb { 1 } - _g_step *:_thisrgb { 1 } + _g_step *);
var b = _step = = 1_torgb { 2 }:(_thisrgb { 2 } >_torgb { 2 } _thisrgb { 2 } - _b_step *:_thisrgb { 2 } + _b_step *);
最后,颜色输出
复制代码代码如下所示:
Obj。
  css({ 'background-color:'rgb(+ R +,+ g + ',' + B +)' });
这里是RGB()的输出,不管是同一个颜色代码,如果你想到6位代码的输出,那么10就转换成16进制。
最后是使用定时器执行,中间有速度和计算,最后执行代码:
复制代码代码如下所示:
*
参数:
目标:目标对象
thisrgb:为当前背景色6位代码
ToRGB:对目标的背景色6位代码
thiscolor:6位代码中的当前文本颜色
颜色:6位目标文本的颜色代码
步骤:处决人数
速度:执行速度
* /
功能colorgradient(obj,thisrgb,到RGB,thiscolor、色泽、步、速度){
无功_thisrgb =彩色(thisrgb); / / 16进制转换10
VaR(_torgb =色转换到RGB);
如果(thiscolortocolor){
无功_thiscolor =彩色(thiscolor,1);
无功_tocolor =彩色(颜色,1);
}
步骤3步:=;
无功_step =步;
无功_speed = speedparseint(速度/步):30; / /根据总时间来计算每个执行速度
无功_r_step = parseInt(Math。
  abs(_thisrgb { 0 } - _torgb { 0 }) / _step);
Var _G_step=parseInt (Math。abs (_thisRGB{1}-_toRGB{1}) /_step);
无功_b_step = parseInt(Math。
  abs(_thisrgb { 2 } - _torgb { 2 }) / _step);
VaR定时器= setInterval(){()函数(
如果(_step >0){
var s =(步_step)+ 1;
VAR r = _step = = 1_torgb { 0 }:(_thisrgb { 0 } >_torgb { 0 } _thisrgb { 0 } - _r_step *:_thisrgb { 0 } + _r_step *);
var g = _step = = 1_torgb { 1 }:(_thisrgb { 1 } >_torgb { 1 } _thisrgb { 1 } - _g_step *:_thisrgb { 1 } + _g_step *);
var b = _step = = 1_torgb { 2 }:(_thisrgb { 2 } >_torgb { 2 } _thisrgb { 2 } - _b_step *:_thisrgb { 2 } + _b_step *);
Obj。
  css({ 'background-color:'rgb(+ R +,+ g + ',' + B +)' });
如果(thiscolortocolor){
VaR CR = _step = = 1_tocolor { 0 }:(_thiscolor { 0 } >_tocolor { 0 } _thiscolor { 0 } - _r_step *:_thiscolor { 0 } + _r_step *);
VaR的CG = _step = = 1_tocolor { 1 }:(_thiscolor { 1 } >_tocolor { 1 } _thiscolor { 1 } - _g_step *:_thiscolor { 1 } + _g_step *);
VaR CB = _step = = 1_tocolor { 2 }:(_thiscolor { 2 } >_tocolor { 2 } _thiscolor { 2 } - _b_step *:_thiscolor { 2 } + _b_step *);
Obj。
  css({色彩:'rgb(+铬+ ',' + CG + ',' + CB + ')' });
}
_step --;
其他{ }
ClearInterval(定时器);
返回true;
}
},_speed);
}
这种方法很简单,但梯度平滑是一般的,特别是当一组对象连续执行时,只说这是一个非常愚蠢的方式,大神使用的是吐温算法。
  
颜色渐变插件
jquery。animate-colors-min。js
使用jQuery的方法是直接使用动画。它不需要指定当前的颜色。程序自动接受当前的颜色,但背景必须设置为样式。
  
复制代码代码如下所示:
obj。animate({ 'background-color ':' # FF0000、色彩:# 000000 });。

相关推荐

  • 平安银行商易贷申请条件要满足哪些?

    平安银行商易贷申请条件要满足哪些?

    条件,银行,企业,股东,客户,我是一家私人餐厅的老板,现在生意不错,想再开一家分店拓展业务,请问平安银行的商易贷怎么样?什么条件能申请?平安银行商易贷的目标客户是小企业主、企业股东、个体工商户,要满足以下条件:1、具有中华人民共和国国籍、25周岁(含)以上,55周岁以下,具有完全民事行为能力的自然人(自雇人士),如小企业主、企业股东、个体工商户等;2、可提供我行认可的担保,或个人信用符合我行特定条件,且无不良信用记录;3、在平安银行分支机...

  • 没有任何抵押的话,可以再担保公司申请到十万块的贷款吗

    没有任何抵押的话,可以再担保公司申请到十万块的贷款吗

    担保,公司,贷款,目标,信用,没有任何抵押,请问怎么样才能在担保公司申请到十万块的贷款?朋友,你在向担保公司借钱的话死后,一定要慎重啊,众所周知,担保公司申请贷款的条件非常宽松。只要我们找担保公司,我们基本上就能把事情做完。但这并不意味着任何人都能达到目标。担保公司也有底线。一般来说,借款人有一个稳定的工作,没有不良信用记录,没有抵押品也可以适用于担保公司无担保贷款,但成本非常高。同样,担保公司也重视抵押贷款。如果他们能提供抵押贷款,担保...

  • 我从08年来深圳工作后,就一直在缴纳社保与住房公积金,但

    我从08年来深圳工作后,就一直在缴纳社保与住房公积金,但

    贷款,信用卡,银行,社保,频率,08年来深圳工作。今年30岁,月收入3500左右。有社保,住房公积金。有信用卡但无不良记录。 你好,除特殊情况下,有过信用卡逾期还款记录一般都会是银行审核贷款环节的必须审查的因素。但是,有不良信用记录并非绝对不能申请到贷款,具体要看你不良记录产生的原因、不良的频率以及不良记录的程度以及你申请贷款的目标银行的具体规定。首先,不一样的银行对于不同情况的不良信用记录贷款有不同的规定,有的银行规定是看逾期次数和最高...

  • 战略规划三要素是什么

    战略规划三要素是什么

    战略规划三要素,,战略规划,计划,目标,企业,执行,约束,可执行,管理过程,指标,有效性,战略规划三要素指的是方向和目标、约束和政策、计划与指标。根据这三要素定制企业的战略规划并按此执行,帮助企业一步一步走向巅峰。战略规划的有效性包括两个方面,一方面是战略正确与否,正确的战略应当做到组织资源和环境的良好匹配;另一方面是战略是否适合于该组织的管理过程,也就是和组织活动匹配与否。所谓战略规划,就是制定组织的长期目标并将其付诸实施,它是一个正式...

  • 安全属于五大领域哪个

    安全属于五大领域哪个

    安全,领域,,幼儿,健康,目标,幼儿园,五大,健康教育,能力,生活知识,语言,学习,健康领域安全属于五大领域中的健康领域。五大领域包括健康、科学、社会、语言、艺术。健康的主要目的是增强幼儿体质,培养健康生活的态度和行为习惯。科学的主要目的是激发幼儿的好奇心和探究欲望,发展认识能力。语言的主要目的是提高幼儿语言交往的积极性、发展语言能力。艺术的主要目的是能初步感受并喜爱环境、生活和艺术中的美。幼儿正处于逐步形成生活方式的阶段,帮助幼儿逐渐形...

  • 爱来的刚好丁海订婚是哪一集

    爱来的刚好丁海订婚是哪一集

    爱来的刚好,丁海订婚,,打扮,气味,期间,人为,嗅觉,身上,几次,平底鞋,目标,达成,第二十二集电视剧《爱来的刚好》中丁海和段雪晴订婚是在第二十二集,丁海来晚是因为他去帮段雪晴买平底鞋。第二十二集剧情介绍在这一集中,段天朗要穆清岺帮丁海和段雪晴订婚派对布置现场,而段雪晴诸多刁难穆清岺。在派对正式开始的时候,丁海却迟到了,丁海的迟到是为了帮段雪晴买一双平顶鞋。丁海跪下替段雪晴换上鞋,羡煞众人。而后丁海和段雪晴跳了订婚派对的开场舞,却被后来的...

  • kpi是什么意思

    kpi是什么意思

    kpi,含义,,指标,公司,企业,目标,部门,考核,分解,假定,控制,市场份额,关键绩效指标关键绩效指标是通过对组织内部流程的输入端、输出端的关键参数进行设置、取样、计算、分析,衡量流程绩效的一种目标式量化管理指标,是把企业的战略目标分解为可操作的工作目标的工具,是企业绩效管理的基础。KPI可以是部门主管明确部门的主要责任,并以此为基础,明确部门人员的业绩衡量指标。建立明确的切实可行的KPI体系,是做好绩效管理的关键。关键绩效指标是用于衡...

  • 性格的四个基本特征

    性格的四个基本特征

    性格,四个基本特征,,特征,成分,个体,核心,目标,情感,调节,格中,认知,性格,性格的四个基本特征:性格的态度特征;性格的理智特征;性格情绪特征;性格的意志特征。性格的理智特征是个体在认知活动中表现出来的心理特征。在感知方面,能按照一定的目的任务主动地观察,属于主动观察型,有的则明显地受环境刺激的影响。性格是一个人在对现实的稳定的态度,以及与这种态度相应的、习惯化了的行为方式中表现出来的人格特征。态度特征性格的态度特征是指个体对自己、他...

  • 岩雀叫什么

    岩雀叫什么

    岩雀,科普,,英雄,控制,区域,目标,沙漠,黄沙,童年时光,丰盛,导致,浮石,塔莉垭岩雀又小麻雀、塔莉垭,岩雀·塔莉垭是游戏《英雄联盟》中的第131位英雄角色。塔莉垭相比部落中的其它孩子,总是显得有些与众不同,这只恕瑞玛的小麻雀比其他人更强大也更勇敢,她能依靠意念操控岩石,重塑地形。游戏中,塔莉垭是一位擅长控场的法师,可以将脚下的土地编织成致命的武器,移山填海,毁天灭地,脱离战斗后又能灵活机动,飞沙走石。塔莉垭来自恕瑞玛,怀有操纵岩石的能...

  • 运动物体的能量跟什么和什么有关

    运动物体的能量跟什么和什么有关

    运动物体,能量,,运动,模糊,频率,位置,目标,清晰,照片,主体,静止,形态,质量、速度运动物体的能量和质量、速度有关,运动速度越快,能量越高。物体由于运动而具有的能量,称为物体的动能。根据动能公式E=mv²/2得,动能与物体的质量和速度的平方成正比。物体运动的方式有:机械运动,光运动,热运动。1、机械运动是自然界中最简单、最基本的运动形态。在物理学里,一个物体相对于另一个物体的位置,或者一个物体的某些部分相对于其他部分的位置,随着时间而...

  • 如何开展班组安全活动

    如何开展班组安全活动

    开展,安全活动,,活动,责任人,学习,目标,作业,第一,冒险,规程,情况,动态,如何开展班组安全活动:1、宣传贯彻安全生产方针、政策,在安全上以身作则,率先规范。2、开好班前会、班后会,落实“五同时”,认真开展“两查、两交”活动;3、严格安全教育、纪律教育、制止违章行为。4、制定适宜的安全目标、安全措施,分解安全目标到每一个岗位和员工个人,检查并严格考核。5、组织好各项安全(日、周、班前、班...

  • 专升本需要报班吗

    专升本需要报班吗

    专升本,报班,,选择,机构,学习,目标,学校,类型,能力,提升,收入,信誉,专升本不是必须要报班专升本不是必须要报班。报班选择需要根据自身情况决定,专升本考试是指专科层次学生进入本科层次阶段学习的选拔考试,是中国大陆教育体制,大专层次学生升入本科院校的考试制度。报班:成本最高效果最好。报班是目前最常见的方式,说一句严厉点的话,没考上本科的人都是相较缺乏自制力的人,线下班级有老师和助教督促监督学习并能及时答疑解惑,你的成绩自然会有明显的提升...