日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

javascript编程:取色器/封装$函数

發(fā)布時間:2023/12/13 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 javascript编程:取色器/封装$函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.封裝$函數(shù)

function $(str){
            //如果傳入的是'#' 則選擇id標簽
            //如果傳入的是'.' 則選擇所有的類名標簽
            //如果傳入的既不是'#也不是'.'  選擇復合標簽
            //判斷傳入的值
            if(typeof str !='string'){
                console.log('傳入的參數(shù)有誤!');
                return null;
            } 
            //獲取參數(shù)的第一個字母
            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.如果有則添加到數(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('標簽選擇器');
                    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("顏色值出錯了!");
58                     return;
59                 }
60                 //變色定時器
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>

取色器

效果預覽:https://happyn6j.github.io/Spectroscope.com/

總結

以上是生活随笔為你收集整理的javascript编程:取色器/封装$函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。