小编给大家分享一下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编程开发中取色器及封装$函数怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!