javascript编程开发中取色器及封装$函数用法示例
程序员文章站
2022-05-14 19:23:54
本文实例讲述了javascript编程开发中取色器及封装$函数用法。分享给大家供大家参考,具体如下:
1.封装$函数
function $(str){...
本文实例讲述了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>
点击此处查看在线演示效果。
ps:这里再为大家推荐几款本站的相关在线工具:
在线rgb、hex颜色代码生成器:
rgb颜色查询对照表_颜色代码表_颜色的英文名称大全:
http://tools.jb51.net/color/jpicker
在线网页调色板工具:
在线颜色选择器工具/rgb颜色查询对照表:
更多关于javascript相关内容可查看本站专题:《javascript切换特效与技巧总结》、《javascript查找算法技巧总结》、《javascript动画特效与技巧汇总》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript数学运算用法总结》
希望本文所述对大家javascript程序设计有所帮助。
上一篇: 使用jQuery实现简单的tab框实例