>웹 프론트엔드 >JS 튜토리얼 >JS_javascript 기술로 구현된 실시간 색상 그라데이션 효과의 전체 예

JS_javascript 기술로 구현된 실시간 색상 그라데이션 효과의 전체 예

WBOY
WBOY원래의
2016-05-16 15:08:101394검색

이 기사의 예에서는 JS로 구현된 실시간 색상 그라데이션 효과를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
</head>
<body>
<div id="div1" style="font-size:36px;">我的闪烁文字 abc123</div>
<span id="span1"></span>
<script type="text/javascript">
var begin = getRGB('#33FFAA');
var end = getRGB('#FF0000');
var curColor = getRGB('#33FFAA');
var bo = true;
var rate = getRate(begin, end);
function blink()
{
  window.setInterval(function(){
    curColor.r = getCur(begin.r, end.r, curColor.r, bo, rate.r);
    curColor.g = getCur(begin.g, end.g, curColor.g, bo, rate.g);
    curColor.b = getCur(begin.b, end.b, curColor.b, bo, rate.b);
    document.getElementById('div1').style.color = getColor(curColor);
    document.getElementById('span1').innerHTML = getColor(curColor);
    if(curColor.r == begin.r && curColor.g == begin.g && curColor.b == begin.b)
    {
      bo = true;
    }
    if(curColor.r == end.r && curColor.g == end.g && curColor.b == end.b)
    {
      bo = false;
    }
  } , 100);
}
function getCur(beginValue, endValue, curValue, bo, rateValue)
{
  if(beginValue == endValue)
  {
    return beginValue;
  }
  rateValue = beginValue < endValue &#63; rateValue : -rateValue;
  curValue += bo &#63; rateValue : -rateValue;
  if(curValue < Math.min(beginValue, endValue))
  {
    curValue = Math.min(beginValue, endValue);
  }
  if(curValue > Math.max(beginValue, endValue))
  {
    curValue = Math.max(beginValue, endValue);
  }
  return curValue;
}
function getRate(b, e)
{
  var obj = new Object();
  obj.r = Math.abs(b.r - e.r) / 5;
  obj.g = Math.abs(b.g - e.g) / 5;
  obj.b = Math.abs(b.b - e.b) / 5;
  return obj;
}
function getRGB(color)
{
  var obj = new Object();
  obj.r = parseInt(color.substr(1,2), 16);
  obj.g = parseInt(color.substr(3,2), 16);
  obj.b = parseInt(color.substr(5,2), 16);
  return obj;
}
function getColor(obj)
{
  obj.r = Math.round(obj.r);
  obj.g = Math.round(obj.g);
  obj.b = Math.round(obj.b);
  var color = '#';
  color += (obj.r < 16 &#63; '0':'') + obj.r.toString(16);
  color += (obj.g < 16 &#63; '0':'') + obj.g.toString(16);
  color += (obj.b < 16 &#63; '0':'') + obj.b.toString(16);
  return color;
}
blink();
</script>
</body>
</html>

더 많은 JavaScript 관련 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제를 확인할 수 있습니다: "JavaScript 검색 알고리즘 기술 요약", "JavaScript 애니메이션 특수 효과 및 기술 요약 ", "JavaScript 오류 및 디버깅 기술 요약", "JavaScript 데이터 구조 및 알고리즘 기술 요약", "JavaScript 순회 알고리즘 및 기술 요약" 및 "JavaScript 수학 연산 사용법 요약

이 기사가 JavaScript 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.