JSColor.hide() 在 Android 上无法按预期工作

问题描述 投票:0回答:1

我正在开发一个涂鸦网站(https://dewdul.com/dewdul-board),并且我集成了 JSColor(https://jscolor.com/docs/)库用于颜色选择。我的问题是,可用于关闭/隐藏颜色选择器的默认设置没有像我预期的那样工作,并且在移动设备上的行为有所不同。

我正在为 JSColor 使用以下预设,包括 hideOnLeave 和 hideOnPaletteClick...

let customColors =  [
            '#2C2B2B', '#FFEE92', '#17C3B2', '#71A5DE', '#C27EC2', '#FE6D73',
        ];

    jscolor.presets.default = {
        palette: customColors,
        //paletteCols: 12,
        hideOnLeave: true,
        hideOnPaletteClick: true,
    };

但是,仅使用这些默认值只会导致当我点击一次并在画布上释放时选择器关闭,而不是通过单击并拖动直接进入绘图。同样,这仅发生在移动设备上。

为了解决这个问题,我尝试调用 JSColor.hide();在pointerup事件中......这有效......除了有一个非常奇怪的问题,当我开始绘制时,它的行为就好像颜色选择器仍然打开并且当我画画时会改变颜色。 (请随意在我的网站上测试一下(这很难描述)。

老实说,我更愿意坚持只使用 hideOnLeave,如果它实际上在您单击并拖动时隐藏选择器,而不仅仅是在您单击并释放时...(再次...在 PC 上工作!!)我认为这是我问题的根源,因为我希望这是正常功能。

感谢您花时间阅读我的问题!

javascript html canvas jscolor
1个回答
0
投票

[email protected] 发送了一封电子邮件,他们帮助我找到了解决方案 :) 这可能是一个错误 - 但作为解决方法,我可以在指针向下事件上使用以下内容来解决此问题。

if (!event.hasOwnProperty('_data_jscolor')) {
    jscolor.hide();
}

© www.soinside.com 2019 - 2024. All rights reserved.