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 相关文章推荐
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
详解AngularJS中的作用域
Jun 17 Javascript
解决jQuery使用JSONP时产生的错误
Dec 02 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
Jan 10 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
ReactNative短信验证码倒计时控件的实现代码
Jul 20 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
May 01 Javascript
微信小程序遍历Echarts图表实现多个饼图
Apr 25 Javascript
用vue 实现手机触屏滑动功能
May 28 Javascript
swiper4实现移动端导航栏tab滑动切换
Oct 16 Javascript
Javascript中Microtask和Macrotask鲜为人知的知识点
Apr 02 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中static静态变量的使用方法详解
2010/06/04 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
Python中endswith()函数的基本使用
2015/04/07 Python
python的concat等多种用法详解
2018/11/28 Python
Django model select的多种用法详解
2019/07/16 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
个人实用的自我评价范文
2013/11/23 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
说明书格式及范文
2014/05/07 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
社区元宵节活动总结
2015/02/06 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
Python利用folium实现地图可视化
2021/05/23 Python
JavaScript中isPrototypeOf函数
2021/11/07 Javascript