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 相关文章推荐
jQuery1.6 类型判断实现代码
Sep 01 Javascript
setInterval与clearInterval的使用示例代码
Jan 28 Javascript
javascript操作数组详解
Dec 17 Javascript
js的for in循环和java里foreach循环的区别分析
Jan 28 Javascript
javascript实时显示当天日期的方法
May 20 Javascript
微信小程序 loading(加载中提示框)实例
Oct 28 Javascript
Bootstrap Table使用心得总结
Nov 29 Javascript
bootstrap实现的自适应页面简单应用示例
Mar 09 Javascript
其实你可以少写点if else与switch(推荐)
Jan 10 Javascript
详解Js里的for…in和for…of的用法
Mar 28 Javascript
微信小程序API—获取定位的详解
Apr 30 Javascript
原生JS实现动态添加新元素、删除元素方法
May 05 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
获取远程文件大小的php函数
2010/01/11 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
django 外键创建注意事项说明
2020/05/20 Python
virtualenv介绍及简明教程
2020/06/23 Python
html5视频媒体标签video的使用方法及完整参数说明详解
2019/09/27 HTML / CSS
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
停电放假通知
2015/04/14 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
Python+pyaudio实现音频控制示例详解
2022/07/23 Python