首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个按钮来用JS格式化<div>中的文本?

如何创建一个按钮来用JS格式化<div>中的文本?
EN

Stack Overflow用户
提问于 2022-05-14 03:59:20
回答 3查看 162关注 0票数 0

我试图用HTML制作一个基本的文本编辑器。到目前为止,我有一个可编辑的div标记,通过使用键盘快捷键,您可以格式化它。但是,我希望有几个按钮可以用粗体、斜体、下划线和改变文本的颜色。为此,我使用了基本的jQuery和JS。

到目前为止,我的代码(大致)如下:

代码语言:javascript
复制
$('.text-editor').each(function(){
    this.contentEditable = true;
});
代码语言:javascript
复制
div.text-editor {
    width: 200px;
    height: 200px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="text-editor"></div>

EN

回答 3

Stack Overflow用户

发布于 2022-05-14 05:17:09

这是一个简单的文本编辑器,有一些简单的按钮和键盘快捷键。希望它能帮到你

代码语言:javascript
复制
<html>
  <head>
    <title>Make simple text editor</title>
    <meta charset="UTF-8" />
  </head>
  <body>
    <div>
      <button type="button" onclick="onItalic()">italic</button>
      <button type="button" onclick="onBold()">bold</button>
      <button type="button" onclick="onUnderline()">underline</button>
    </div>
    <textarea name="example" id="example_id" cols="30" rows="10"></textarea>
    <script>
      const textarea = document.getElementById("example_id");

      function onItalic() {
        textarea.style.fontStyle = "italic";
      }
      function onBold() {
        textarea.style.fontWeight = "bold";
      }
      function onUnderline() {
        textarea.style.textDecoration = "underline";
      }

      function onKeyboardShotcut(e) {
        if (e.ctrlKey && e.key === "i") {
          onItalic();
        } else if (e.ctrlKey && e.key === "b") {
          onBold();
        } else if (e.ctrlKey && e.key === "u") {
          onUnderline();
        }
      }
      document.addEventListener("keyup", onKeyboardShotcut, false);
    </script>
  </body>
</html>

票数 0
EN

Stack Overflow用户

发布于 2022-05-14 05:17:24

您可以在jquery上尝试这种方法。

代码语言:javascript
复制
$('.text-editor').each(function(){
    this.contentEditable = true;
});

$('.italic').click(function(){
 $('.text-editor').css("font-style", "italic");
 $('.text-editor').css("font-weight", "initial");
 
});

$('.bold').click(function(){
 $('.text-editor').css("font-style", "initial");
   $('.text-editor').css("font-weight", "bold");
 
});
代码语言:javascript
复制
div.text-editor {
    width: 50px;
    height: 50px;
}

.text-editor:focus-within {
  font-style: initial;
  font-weight: initial;}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div class="text-editor">Hello</div>
<button class="italic">Italic</button>
<button class="bold">Bold</button>
</body>

票数 0
EN

Stack Overflow用户

发布于 2022-05-14 07:51:59

您可以使用toggleClass()函数在类之间切换。可以通过为每个功能添加keyup事件来添加快捷键。在这里,我让alt+i代表意大利语,alt+b代表粗体,alt+u代表下划线。最后但同样重要的是,您可以添加<input type="color">来添加颜色选择器。

代码语言:javascript
复制
document.addEventListener("keyup", function(e){
if (e.altKey && e.key === "i") {
          $('.text-editor').toggleClass('italic')
        } else if (e.altKey && e.key === "b") {
          $('.text-editor').toggleClass('bold')
        } else if (e.altKey && e.key === "u") {
          $('.text-editor').toggleClass('underline')
        }
}, false);

$('.text-editor').each(function(){
    this.contentEditable = true;
});

$('#italic-text').click(function(){
$('.text-editor').toggleClass('italic')
});

$('#bold-text').click(function(){
$('.text-editor').toggleClass('bold')
});

$('#underline-text').click(function(){
$('.text-editor').toggleClass('underline')
});

$('#color-picker').change(function() {
$('.text-editor').css('color', $(this).val())
})
代码语言:javascript
复制
div.text-editor {
    width: 150px;
    height: 150px;
}

.bold {
  font-weight: bolder;
}

.italic {
  font-style: italic;
}

.underline {
  text-decoration: underline;
}

#color-picker {
  height: 21px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div class="text-editor">Text Editor</div>
<button id="italic-text">Italic</button>
<button id="bold-text" >Bold</button>
<button id="underline-text" >Underline</button>
<input type="color" id="color-picker" value="#fff">
</body>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72237252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档