Как добавить эффект для текста или изображения из Kendo Editor?
Случай 1:
- затемнение текста или изображения
- выбор эффекта в списке со списком
- Добавление эффекта для текста / изображения
Случай 2:
- эффект потемнения текста / изображения
- Эффект отобразится в списке выбора
Я надеюсь, что результаты будут такими же, какрезультаты при добавлении размера шрифта или семейства шрифтов для текста.
В настоящее время у меня есть список эффектов и я могу добавить эффект для текста.Это все.: (
<textarea name="Contents" id="editor"></textarea>
$("#editor").kendoEditor({
tools: [
{
name: "formatting",
width: 150,
items: [
{ text: "bounce", value: ".animated bounce" },
{ text: "flash", value: ".animated flash" },
{ text: "pulse", value: ".animated pulse" },
{ text: "rubberBand", value: ".animated rubberBand" },
{ text: "shake", value: ".animated shake" },
{ text: "swing", value: ".animated swing" },
{ text: "FadeIn Left", value: ".animated fadeInLeft" },
{ text: "FadeIn Down", value: ".animated fadeInDown" },
{ text: "zoomIn", value: ".animated zoomIn" },
{ text: "zoomInDown", value: ".animated zoomInDown" },
{ text: "zoomInLeft", value: ".animated zoomInLeft" },
{ text: "zoomInRight", value: ".animated zoomInRight" },
{ text: "zoomInUp", value: ".zoomInUp" },
{ text: "Highlight Error", value: ".hlError" },
{ text: "Highlight OK", value: ".hlOK" },
{ text: "Inline Code", value: ".inlineCode" }
]
},
"cleanFormatting",
"fontName",
"fontSize",
"backColor",
"insertImage",
"viewHtml",
{
name: 'customeAnimation',
template: '<input id="customAnimation" placeholder="Select animation..." style="width: 100%;" />'
},
],
stylesheets: [
"https://demos.telerik.com/kendo-ui/content/web/editor/editorStyles.css",
"https://daneden.github.io/animate.css/animate.min.css",
]
});
$("#customAnimation").kendoComboBox({
autoWidth: false,
dataTextField: "text",
dataValueField: "value",
dataSource: [
{ text: "FadeIn Left", value: "fadeInLeft" },
{ text: "FadeIn Down", value: "fadeInDown" },
{ text: "zoomIn", value: "zoomIn" },
{ text: "zoomInDown", value: "zoomInDown" },
{ text: "zoomInLeft", value: "zoomInLeft" },
{ text: "zoomInRight", value: "zoomInRight" },
{ text: "zoomInUp", value: "zoomInUp" },
// { text: "Highlight Error", value: "hlError" },
// { text: "Highlight OK", value: "hlOK" },
// { text: "Inline Code", value: "inlineCode" }
],
change: function(e) {
var editor = $("#editor").data("kendoEditor");
var effectValue = this.value();
var textSelect = '';
if (editor.getSelection) {
textSelect = editor.getSelection().toString();
} else if (editor.selection.type != "Control") {
textSelect = editor.selection.createRange().text;
}
var newText = '';
var arrText = [];
var newContent = '';
if(textSelect != '' && effectValue != '') {
const range = editor.getSelection().getRangeAt(0);
range.cloneContents().querySelectorAll('*').forEach(e => {
arrText.push(e);
});
if (arrText.length > 0) {
arrText.forEach(e => {
newText = "<span class='animated "+effectValue+"'>" + e.innerText + "</span>";
newContent = editor.body.innerHTML.replace(e.innerText, newText);
editor.body.innerHTML = '';
editor.exec("inserthtml", { value: newContent });
});
} else {
newText ="<span class='animated "+effectValue+"'>" + textSelect + "</span>";
newContent = editor.body.innerHTML.replace(textSelect, newText);
editor.body.innerHTML = '';
editor.exec("inserthtml", { value: newContent });
}
editor.refresh();
}
},
filter: "contains",
});
$(document).ready(function() {
$("#btn-show").click(function() {
var editor = $("#editor").data("kendoEditor");
document.getElementById("e-content").innerHTML = editor.value();
});
})