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


Posted in Javascript onAugust 09, 2017

本文实例讲述了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>

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

Javascript 相关文章推荐
Apply an AutoFormat to an Excel Spreadsheet
Jun 12 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
Oct 17 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
Bootstrap Table使用心得总结
Nov 29 Javascript
Mac下使用charles遇到的问题以及解决办法
Jan 10 Javascript
详解Node.js 命令行程序开发教程
Jun 07 Javascript
使用Angular自定义字段校验指令的方法示例
Feb 01 Javascript
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
js实现聊天对话框
Feb 08 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 Javascript
vuejs父子组件之间数据交互详解
Aug 09 #Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 #Javascript
浅谈react+es6+webpack的基础配置
Aug 09 #Javascript
js中less常用的方法小结
Aug 09 #Javascript
利用JS做网页特效_大图轮播(实例讲解)
Aug 09 #Javascript
基于Vue实例对象的数据选项
Aug 09 #Javascript
react-native之ART绘图方法详解
Aug 08 #Javascript
You might like
THINKPHP内容分页代码分享
2015/01/14 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
python实现在pickling的时候压缩的方法
2014/09/25 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
毕业生幼师求职自荐信
2013/10/01 职场文书
大学毕业感言50字
2014/02/07 职场文书
项目总经理岗位职责
2014/02/14 职场文书
高中生毕业评语
2014/12/30 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server