javascript编程:取色器/封装$函数
生活随笔
收集整理的這篇文章主要介紹了
javascript编程:取色器/封装$函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.封裝$函數(shù)
function $(str){
//如果傳入的是'#' 則選擇id標(biāo)簽
//如果傳入的是'.' 則選擇所有的類名標(biāo)簽
//如果傳入的既不是'#也不是'.' 選擇復(fù)合標(biāo)簽
//判斷傳入的值
if(typeof str !='string'){
console.log('傳入的參數(shù)有誤!');
return null;
}
//獲取參數(shù)的第一個(gè)字母
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.獲取所有的標(biāo)簽
//3.逐個(gè)判斷是否帶有該類名
//4.如果有則添加到數(shù)組中
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){
//加入到數(shù)組中去
resultElements.push(elements[i]);
console.log(resultElements);
}
}
}
return resultElements;
}
break;
default:
console.log('標(biāo)簽選擇器');
name=str.substr(0);
return document.getElementsByTagName(name);
}
}
2.取色器
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Document</title>
6 <script src="js/select.js"></script>
7 <style>
8 *{
9 margin: 0;
10 padding: 0;
11 }
12 #box{
13 width: 300px;
14 height: 300px;
15 background:rgb(0,0,0);
16 margin:20px;
17 }
18 #btn{
19 padding:0 20px;
20 }
21 input{
22 width: 100px;
23 }
24 </style>
25 <script>
26 //javascript的style屬性只能獲取內(nèi)聯(lián)樣式,對于外部樣式和嵌入式樣式需要用currentStyle屬性。但是,currentStyle在FIrefox和Chrome下不支持,需要使用如下兼容性代碼
27 HTMLElement.prototype.__defineGetter__("currentStyle", function () {
28 return this.ownerDocument.defaultView.getComputedStyle(this, null);
29 });
30
31 function bgColor(obj){
32 return obj.currentStyle.backgroundColor;
33 }
34 function compare(color1,color2){
35 if(color1>color2){
36 return -1;
37 }else if(color1<color2){
38 return 1;
39 }else{
40 return 0;
41 }
42 }
43 window.onload=function(){
44
45 var red;
46 var green;
47 var blue;
48 var boxColor=[];
49 $('#btn').onclick=function(){
50 red=Number($('#red').value);
51 green=Number($('#green').value);
52 blue=Number($('#blue').value);
53 boxColor=bgColor($('#box')).split('(');
54 boxColor=boxColor[1].split(')');
55 boxColor=boxColor[0].split(',');
56 if(red>255||red<0 || green>255||green<0 || blue>255||blue<0){
57 alert("顏色值出錯(cuò)了!");
58 return;
59 }
60 //變色定時(shí)器
61 var timer=setInterval(function(){
62 boxColor[0]=Number(boxColor[0])+compare(boxColor[0],red);
63 boxColor[1]=Number(boxColor[1])+compare(boxColor[1],green);
64 boxColor[2]=Number(boxColor[2])+compare(boxColor[2],blue);
65 $('#box').style.background='rgb('+boxColor[0]+','+boxColor[1]+','+boxColor[2]+')';
66 if(boxColor[0]==red&&boxColor[1]==green&&boxColor[2]==blue){
67 clearInterval(timer);
68 }
69 },10);
70 }
71 }
72 </script>
73 </head>
74 <body>
75 <div id="box"></div>
76 red:<input type="text" id="red">
77 green:<input type="text" id="green">
78 blue:<input type="text" id="blue">
79
80 <button id="btn">取色</button>
81 </body>
82 </html>
取色器
效果預(yù)覽:https://happyn6j.github.io/Spectroscope.com/
總結(jié)
以上是生活随笔為你收集整理的javascript编程:取色器/封装$函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac os清除U盘分区
- 下一篇: WIN10下设置惠普HP1050等打印机