JS实现简单面向对象的颜色选择器实例
来源: 阅读:1240 次 日期:2016-07-06 17:02:23
温馨提示: 小编为您整理了“JS实现简单面向对象的颜色选择器实例”,方便广大网友查阅!

本文实例讲述了JS实现简单面向对象的颜色选择器。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>Untitled Document</title>

</head>

<body>

<script type="text/JavaScript">

<!--

var colorPicker = function(idStr){

 this.colorPool = ["#000000","#993300","#333300","#003300","#003366","#000080","#333399","#333333","#800000","#FF6600","#808000","#008000","#008080","#0000FF","#666699","#808080","#FF0000","#FF9900","#99CC00","#339966","#33CCCC","#3366FF","#800080","#999999","#FF00FF","#FFCC00","#FFFF00","#00FF00","#00FFFF","#00CCFF","#993366","#CCCCCC","#FF99CC","#FFCC99","#FFFF99","#CCFFCC","#CCFFFF","#99CCFF","#CC99FF","#FFFFFF"];

 this.initialize(idStr);

}

colorPicker.prototype = {

 initialize: function(idStr){

  var count=0;

  var html = '';

  var self = this;

  html+= '<table cellspacing="5" cellpadding="0" border="2" bordercolor="#000000" style="cursor:pointer;background:#ECE9D8" mce_style="cursor:pointer;background:#ECE9D8" >';

  // html+= '<tr><td align="center" colspan="8" width="160" height="20" id="currentColor" bgcolor="#ffffff">当前颜色</td></tr>';

  for(i=0;i<5;i++)

  {

   html+= "<tr>";

   for(j=0;j<8;j++)

   {

    html+= '<td align="center" width="20" height="20" style="background:'+ this.colorPool[count]+'" mce_style="background:'+ this.colorPool[count]+'" unselectable="on"> </td>';

    count++;

   }

   html+= "</tr>";

  }

  html+= '</table>';

  this.trigger = document.getElementById(idStr);

  this.div = document.createElement('div');

  this.div.innerHTML = html;

  var tds = this.div.getElementsByTagName('td');

  for(var i=0,l=tds.length;i<l;i++){

   tds[i].onclick = function(){

    self.setColor(this.style.backgroundColor);

   }

  }

  this.div.id = 'myColorPicker';

  this.trigger.parentNode.appendChild(this.div);

  this.div.style.position = 'absolute';

  this.div.style.left = this.trigger.offsetLeft + 'px'

  this.div.style.top = (this.trigger.clientHeight + this.trigger.offsetTop)+ 'px';

  //this.hide();

  this.trigger.onclick = function(){

   if(self.div.style.display == 'none'){

    self.show();

    return false;

   }else{

    self.hide();

    return false;

   }

  }

 },

 setColor : function(c){

  this.hide();

  document.getElementById('demo').style.backgroundColor = c //proEditor.setColor(c); //自己定义函数决定setColor的功能

 },

 hide : function(){

  this.div.style.display = 'none'

 },

 show : function(){

  this.div.style.display = 'block'

 }

}

// -->

</script>

<div >

<a href="#" mce_href="#" onclick="initColorPicker();return false" id="demo" style="position:absolute;left:200px">颜色选择</a>

</div>

<script type="text/javascript">

<!--

function initColorPicker(){

 picker = new colorPicker('demo');

}

// -->

</script>

</body>

</html>

希望本文所述对大家JavaScript程序设计有所帮助。

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map