이 기사의 예에서는 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 ? rateValue : -rateValue; curValue += bo ? 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 ? '0':'') + obj.r.toString(16); color += (obj.g < 16 ? '0':'') + obj.g.toString(16); color += (obj.b < 16 ? '0':'') + obj.b.toString(16); return color; } blink(); </script> </body> </html>
더 많은 JavaScript 관련 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제를 확인할 수 있습니다: "JavaScript 검색 알고리즘 기술 요약", "JavaScript 애니메이션 특수 효과 및 기술 요약 ", "JavaScript 오류 및 디버깅 기술 요약", "JavaScript 데이터 구조 및 알고리즘 기술 요약", "JavaScript 순회 알고리즘 및 기술 요약" 및 "JavaScript 수학 연산 사용법 요약》
이 기사가 JavaScript 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.