gpt4 book ai didi

javascript - 如何让 CKEditor 内联工具栏淡入淡出?

转载 作者:行者123 更新时间:2023-11-28 02:45:29 24 4
gpt4 key购买 nike

我目前正在构建的网络应用程序中使用 CKEditor。我想让内联工具栏在文本框聚焦时淡入,在未聚焦时淡出。我通常只是为此添加一个过渡,但工具栏似乎显示/隐藏了通过 JS 文件添加的 Visibility 属性,这会导致问题。

谁有好的工具栏淡入淡出解决方案?

编辑按要求添加启动代码:

在我的 HTML 中,我有一个如下所示的 div:

<div id="editor" contenteditable="true"></div>

然后在 mu .JS 文件中运行以下代码:

$(document).ready(function () {
CKEDITOR.disableAutoInline = true;

//More Code

CKEDITOR.inline('editor');

//More Code
}

编辑 2:成功了一半因此,我设法通过使用“焦点”事件触发器使其淡入,如下所示:

    var editor = CKEDITOR.instances.editor;
$('#cke_editor').css({ 'opacity': '0' });
editor.on('focus', function () {
$('#cke_editor').css({ 'opacity': '0', "transition": "opacity 0.2s linear" });
setTimeout(function () { $('#cke_editor').css({ 'opacity': '1' }) }, 200);
});

但是,一旦编辑器“模糊”,我似乎无法让它再次淡出,它以编程方式将“显示:无”应用到它。

最佳答案

很高兴 Conor,这是完整的答案:

通过在模糊事件上动态添加样式类,例如“always-display”,display: none; 被覆盖。 javascript setTimeout 可以在所需的模糊持续时间后删除此类。

HTML/JavaScript/CSS 片段(由于跨源框架而无法使用):

var editor = CKEDITOR.replace( 'editor1' );


editor.on('focus', function () {
$('#cke_editor').css({ 'opacity': '0', "transition": "opacity 0.2s linear" });
setTimeout(function () { $('#cke_editor').css({ 'opacity': '1' }) }, 200);
});

editor.on('blur', function () {
//force CKEditor to be visible, by overwriting 'display:none'
$('#cke_editor').addClass("always-display");
//attach fade effect
$('#cke_editor').css({ 'opacity': '0' });
//remove override forcing visibility after fade effect has taken place
setTimeout(function () { $('#cke_editor').removeClass("always-display"); }, 200);
});
.always-display{
display: block !important;
}
<html>
<head>
<script src="//cdn.ckeditor.com/4.6.2/standard/ckeditor.js"></script>
</head>
<body>
<textarea name="editor1" contenteditable="true"></textarea>
<script>
</script>
</body>
</html>

关于javascript - 如何让 CKEditor 内联工具栏淡入淡出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41767881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com