javascript - 将 nicedit.js 的颜色选择器更改为 photoshop 之类的

标签 javascript jquery jquery-plugins color-picker nicedit

我想更改 nicedit.js 的默认颜色选择器 在浏览 js 文件时,我可以看到下面的代码正在生成颜色选择器。使用 colorList 变量设置数据。任何人都可以帮助我获得像 photoshop 或更相关的颜色选择器。

var nicEditorColorButton = nicEditorAdvancedButton.extend({ 
  addPane : function() {
      var colorList = {0 : '00',1 : '33',2 : '66',3 :'99',4 : 'CC',5 : 'FF'};
      var colorItems = new bkElement('DIV').setStyle({width: '270px'});

      for(var r in colorList) {
        for(var b in colorList) {
          for(var g in colorList) {
            var colorCode = '#'+colorList[r]+colorList[g]+colorList[b];

            var colorSquare = new bkElement('DIV').setStyle({'cursor' : 'pointer', 'height' : '15px', 'float' : 'left'}).appendTo(colorItems);
            var colorBorder = new bkElement('DIV').setStyle({border: '2px solid '+colorCode}).appendTo(colorSquare);
            var colorInner = new bkElement('DIV').setStyle({backgroundColor : colorCode, overflow : 'hidden', width : '11px', height : '11px'}).addEvent('click',this.colorSelect.closure(this,colorCode)).addEvent('mouseover',this.on.closure(this,colorBorder)).addEvent('mouseout',this.off.closure(this,colorBorder,colorCode)).appendTo(colorBorder);

            if(!window.opera) {
              colorSquare.onmousedown = colorInner.onmousedown = bkLib.cancelEvent;
            }

          } 
        } 
      }
      this.pane.append(colorItems.noSelect());  
  }
});

最佳答案

我会将 colorList 更改为包含 photoshop 十六进制值的数组,然后像这样使用它:

var nicEditorColorButton = nicEditorAdvancedButton.extend({ 
  addPane : function() {
  var colorList = {0 : '000000',1 : 'FFFFFF'};  /* here goes color list */
  var colorItems = new bkElement('DIV').setStyle({width: '270px'});

  for(var g in colorList) {
    var colorCode = '#'+colorList[g];
    var colorSquare = new bkElement('DIV').setStyle({'cursor' : 'pointer', 'height' : '15px', 'float' : 'left'}).appendTo(colorItems);
    var colorBorder = new bkElement('DIV').setStyle({border: '2px solid '+colorCode}).appendTo(colorSquare);
    var colorInner = new bkElement('DIV').setStyle({backgroundColor : colorCode, overflow : 'hidden', width : '11px', height : '11px'}).addEvent('click',this.colorSelect.closure(this,colorCode)).addEvent('mouseover',this.on.closure(this,colorBorder)).addEvent('mouseout',this.off.closure(this,colorBorder,colorCode)).appendTo(colorBorder);

    if(!window.opera) {
      colorSquare.onmousedown = colorInner.onmousedown = bkLib.cancelEvent;
    }

  }
  this.pane.append(colorItems.noSelect());  
}});

不确定我的代码是否被正确编辑,但您已经了解了基本概念。去掉2个for循环,直接在colorList中循环

关于javascript - 将 nicedit.js 的颜色选择器更改为 photoshop 之类的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37234606/

相关文章:

javascript - 根据另一个日期选择器的值设置日期选择器的 min 属性

javascript - 如何向下滚动页面以使指定元素位于顶部?

javascript - iScroll 不显示滚动条,但允许我拖动内容

javascript - 当我不应该这样做时,我可以将图像拖放到其他图像上

javascript - 如何在 url 中发送 1 个以上参数以及如何在 Node.js/Express 的 GET 路由中访问它们

javascript - JQuery "get"失败(在后端使用 Google App Engine)

jquery - 我可以禁用特定元素的样式定义吗?

javascript - 如何对 jquery 插件中的内部函数进行单元测试?

javascript - 错误 : missing : after property id

javascript - 获取 Web 服务的进度百分比