欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-11-25 11:16:37
本文实例讲述了javascript编程开发中取色器及封装$函数用法。分享给大家供大家参考,具体如下: 1.封装$函数 function $(str){...

本文实例讲述了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颜色代码生成器:

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

在线网页调色板工具:

在线颜色选择器工具/rgb颜色查询对照表:

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

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