最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript编程开发中取色器及封装$函数用法示例

来源:动视网 责编:小采 时间:2020-11-27 22:33:06
文档

javascript编程开发中取色器及封装$函数用法示例

javascript编程开发中取色器及封装$函数用法示例:本文实例讲述了javascript编程开发中取色器及封装$函数用法。分享给大家供大家参考,具体如下: 1.封装$函数 function $(str){ //如果传入的是'#' 则选择id标签 //如果传入的是'.' 则选择所有的类名标签 //如果传入的既不是'#也不是'.' 选择复合标签
推荐度:
导读javascript编程开发中取色器及封装$函数用法示例:本文实例讲述了javascript编程开发中取色器及封装$函数用法。分享给大家供大家参考,具体如下: 1.封装$函数 function $(str){ //如果传入的是'#' 则选择id标签 //如果传入的是'.' 则选择所有的类名标签 //如果传入的既不是'#也不是'.' 选择复合标签


本文实例讲述了javascript编程开发中取色器及封装$函数用法。分享给大家供大家参考,具体如下:

1.封装$函数

function $(str){
 //如果传入的是'#' 则选择id标签
 //如果传入的是'.' 则选择所有的类名标签
 //如果传入的既不是'#也不是'.' 选择复合标签
 //判断传入的值
 if(typeof str !='string'){
 console.log('传入的参数有误!');
 return null;
 } 
 //获取参数的第一个字母
 var firstChar=str.charAt(0);
 var name=str.substr(1);
 switch(firstChar){
 case '#':
 console.log('id选择器');
 return document.getElementById(name);
 break;
 case '.':
 //类选择器:getElementsByClassName是在js中新加入的,对于老的ie6,ie7无法兼容
 console.log('类选择器');
 //兼容性
 //1.判断是否能够使用getElementsByClassName
 if(!document.getElementsByClassName){
 return document.getElementsByClassName(name);
 }else{
 //2.获取所有的标签
 //3.逐个判断是否带有该类名
 //4.如果有则添加到数组中
 var resultElements=[];
 var elements=document.getElementsByTagName('*');
 // console.log(element);
 for(var i=0;i<elements.length;i++){
 var element=elements[i];
 var class_name=element.className.split(' ');
 for(var j=0;j<class_name.length;j++){
 if(class_name[j]==name){
 //加入到数组中去
 resultElements.push(elements[i]);
 console.log(resultElements);
 }
 }
 }
 return resultElements;
 }
 break;
 default:
 console.log('标签选择器');
 name=str.substr(0);
 return document.getElementsByTagName(name);
 }
 }

2.取色器

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="js/select.js"></script>
 <style>
 *{
 margin: 0;
 padding: 0;
 }
 #box{
 width: 300px;
 height: 300px;
 background:rgb(0,0,0);
 margin:20px;
 }
 #btn{
 padding:0 20px;
 }
 input{
 width: 100px;
 }
 </style>
 <script>
 //javascript的style属性只能获取内联样式,对于外部样式和嵌入式样式需要用currentStyle属性。但是,currentStyle在FIrefox和Chrome下不支持,需要使用如下兼容性代码
 HTMLElement.prototype.__defineGetter__("currentStyle", function () { 
 return this.ownerDocument.defaultView.getComputedStyle(this, null); 
 });
 function bgColor(obj){
 return obj.currentStyle.backgroundColor;
 }
 function compare(color1,color2){
 if(color1>color2){
 return -1;
 }else if(color1<color2){
 return 1;
 }else{
 return 0;
 }
 }
 window.onload=function(){
 var red;
 var green;
 var blue;
 var boxColor=[];
 $('#btn').onclick=function(){
 red=Number($('#red').value);
 green=Number($('#green').value);
 blue=Number($('#blue').value);
 boxColor=bgColor($('#box')).split('(');
 boxColor=boxColor[1].split(')');
 boxColor=boxColor[0].split(',');
 if(red>255||red<0 || green>255||green<0 || blue>255||blue<0){
 alert("颜色值出错了!");
 return;
 }
 //变色定时器
 var timer=setInterval(function(){
 boxColor[0]=Number(boxColor[0])+compare(boxColor[0],red);
 boxColor[1]=Number(boxColor[1])+compare(boxColor[1],green);
 boxColor[2]=Number(boxColor[2])+compare(boxColor[2],blue);
 $('#box').style.background='rgb('+boxColor[0]+','+boxColor[1]+','+boxColor[2]+')';
 if(boxColor[0]==red&&boxColor[1]==green&&boxColor[2]==blue){
 clearInterval(timer);
 }
 },10);
 }
 }
 </script>
</head>
<body>
 <div id="box"></div>
 red:<input type="text" id="red">
 green:<input type="text" id="green">
 blue:<input type="text" id="blue">
 <button id="btn">取色</button>
</body>
</html>

点击此处查看在线演示效果。

PS:这里再为大家推荐几款本站的相关在线工具:

在线RGB、HEX颜色代码生成器:
http://tools.jb51.net/color/rgb_color_generator

RGB颜色查询对照表_颜色代码表_颜色的英文名称大全:
http://tools.jb51.net/color/jPicker

在线网页调色板工具:
http://tools.jb51.net/color/color_picker

在线颜色选择器工具/RGB颜色查询对照表:
http://tools.jb51.net/color/colorpicker

更多关于JavaScript相关内容可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

文档

javascript编程开发中取色器及封装$函数用法示例

javascript编程开发中取色器及封装$函数用法示例:本文实例讲述了javascript编程开发中取色器及封装$函数用法。分享给大家供大家参考,具体如下: 1.封装$函数 function $(str){ //如果传入的是'#' 则选择id标签 //如果传入的是'.' 则选择所有的类名标签 //如果传入的既不是'#也不是'.' 选择复合标签
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top