HTML5颜色输入无法打开

物质线

我正在开发一个Web应用程序,其中涉及将画布用作人与人之间的共享白板。我在菜单上输入了HTML5颜色,将其悬停在白板上时可以看到,以便用户更改绘图工具的颜色。

我的问题是,在测试过程中,拾色器大部分时间都不会打开。我有两个打开的选项卡,都带有要测试的白板实例。颜色选择器仅在我打开的页面的第一个实例上打开。

在第二页上,当我单击颜色选择器时,它拒绝打开。它在按钮上显示单击动画,但浏览器的颜色选择器对话框未打开。此外,如果刷新页面的第一个实例,颜色选择器也会在那里停止工作。我可以再次使用它的唯一方法是,如果我完全关闭两个选项卡并重新打开一个选项卡。

我已经尝试并确认在Chrome和Firefox中都会发生这种情况,这使我认为这是HTML的问题。这是围绕颜色选择器的HTML片段。

<a href="#button-draw" id="drawing-tool" title="Drawing Tool" data-toggle="remote-whiteboard" data-toggle-2="min" style="display:none;">
   <div class="drawing-tool-menu" style="display:none;">
       <input id="color-draw" type="color"/>
   </div>
   <span class="fa fa-pencil fa-2x"></span>
</a>

锚点是悬停工具栏中的一个按钮,用于选择标记,当鼠标悬停在该按钮上时,颜色选择器将显示在其上方,以便您选择颜色。

这是菜单悬停在白板上且颜色选择器可见的图片。

白板菜单

我尝试在此处进行详细说明并提供相关信息。我不确定哪些信息可能对解决问题有用。我也不确定这是浏览器还是我的代码有问题。我可以添加一些我用来显示菜单的JavaScript,更多HTML或CSS(如果有帮助的话)。

编辑1:

JavaScript代码

我使用此代码来检测颜色的变化

 $("#color-draw").off();
    $("#color-draw").change(function (e) {
        drawingClass.currentColor = $(this).val();
});

为了显示/隐藏菜单,我使用了这个。

var menuCloseTimer = {};

$(".whiteboard-toolbar a").off();
$(".whiteboard-toolbar a").mouseenter(function (e) {
    var item = $(this).attr("id")
    var key = $(this).attr("data-toggle");
    $(".video-toolbar[data-toggle='" + key + "']").show();
    $(".whiteboard-toolbar[data-toggle='" + key + "']").show();
    $(this).children(".drawing-tool-menu").show();
    clearTimeout(menuCloseTimer[item])
});
$(".whiteboard-toolbar a").mouseleave(function (e) {
    var menu = $(this)
    var item = $(this).attr("id")
    var key = $(this).attr("data-toggle");
    $(".video-toolbar[data-toggle='" + key + "']").hide();

    menuCloseTimer[item] = setTimeout(function () {
        menu.children(".drawing-tool-menu").hide();
    }, 500);
});

编辑2:

我发现了一些东西。在第一次单击颜色选择器时,它会打开,但在随后的加载中,它会触发处理程序进行锚定。我不确定为什么。

物质线

我写的HTML旨在使弹出菜单相对于锚按钮显示。但是,输入元素位于锚点内部会导致此问题。第一次加载后,单击颜色输入将触发锚点,而不是弹出颜色窗口。

我不知道为什么拾色器在第一次加载时起作用,但是我很确定这是导致问题的原因。我做了一些研究,发现您不应该将按钮放在锚点内,基本上就是这样。

我将颜色输入移出了锚点,效果很好。

令人沮丧的是,没有任何有关此问题或浏览器引发的错误的文档。

编辑1

为了解决此问题,我将代码更改为:

<div style="display:inline-block;position:relative">
    <a href="#button-draw" id="drawing-tool" title="Drawing Tool" data-toggle="remote-whiteboard" data-toggle-2="min">
        <span class="fa fa-pencil fa-2x"></span>
    </a>
    <div class="drawing-tool-menu" id="drawing-tool" data-toggle="remote-whiteboard" style="display:none;">
        <input id="color-draw" type="color" />
    </div>
</div>

这样,输入与锚分离,但仍相对于锚放置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用PHP读取HTML5输入(颜色)值

来自分类Dev

使用CSS更改HTML5输入的占位符颜色

来自分类Dev

使用CSS更改HTML5输入的占位符颜色

来自分类Dev

手机间隙HTML5无法打开相机

来自分类Dev

HTML5颜色输入事件在颜色选择器中的鼠标上方触发

来自分类Dev

HTML5 App应该打开网站。如何设置背景颜色?

来自分类Dev

HTML5输入模式

来自分类Dev

为什么打开时无法打开某些HTML5视频?

来自分类常见问题

如何设置HTML5范围输入的样式,使其在滑块前后具有不同的颜色?

来自分类Dev

使用内联CSS更改输入的HTML5占位符颜色

来自分类Dev

带有html5颜色输入的AngularJS-动态设置值

来自分类Dev

通过js创建时,HTML5输入类型的颜色不显示值

来自分类Dev

通过js创建时,HTML5输入类型的颜色不显示值

来自分类Dev

带有html5颜色输入的AngularJS-动态设置值

来自分类Dev

更改onclick HTML5的背景颜色

来自分类Dev

在html5中更改背景颜色

来自分类Dev

HTML5 Canvas遮罩特定颜色

来自分类Dev

CMYK 颜色支持 - HTML5 画布

来自分类Dev

Internet Explorer中的HTML5视频无法正确呈现颜色

来自分类Dev

从HTML5存储打开PDF

来自分类Dev

从HTML5存储打开PDF

来自分类Dev

使用html5输入type ='color'

来自分类Dev

AngularJS验证HTML5输入日期

来自分类Dev

HTML5输入安全SSL

来自分类Dev

HTML5输入滑块未更新

来自分类Dev

HTML5输入datetime-local

来自分类Dev

Ember的HTML5范围输入

来自分类Dev

样式化HTML5数字输入

来自分类Dev

html5 localstorage不保存输入