html+css+js实现文本编辑器

html+css+js实现文本编辑器

简介:本文讲解,如何制作使用html+css+js实现一个好看的文本编辑器。

效果展示
当文本框聚焦的时候,就是显示textarea,然后是可编辑的,这个时候可以对文本框输入内容。
在这里插入图片描述

当失去文本框焦点的时候,那么就隐藏textarea,显示div,使用div来显示这个文本的内容,更加的专业。
在这里插入图片描述

代码分析

完整的代码:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>作文编辑器G</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <style>
        body{
            padding: 100px 200px;
        }
        .form-control{
            min-height:500px;
            margin: 30px;
            border-color: skyblue;
        }
        #editor1 {
            height: 500px;
            display: inline-block;
        }
        #editor2 {
            display: none;
        }

    </style>
</head>
<body>
<div id="editparent">
    <!-- 编辑器控制按钮 -->
    <div id='editControls' style='text-align:center; padding:5px;'>
        <h1>作文编辑器</h1>
    </div>
    <!-- 编辑器可输入内容处 -->
<!--    textarea负责文本内容的编辑-->
    <textarea id='editor1' class='form-control'  contenteditable placeholder="在这里输入内容 英文缩写请用全称"></textarea>
<!--    div负责文本内容的显示-->
    <div id="editor2" class='form-control'  contenteditable >
        <h3></h3>
    </div>

</div>
<script src="https://cdn.acwing.com/static/jquery/js/jquery-3.3.1.min.js"></script>
<script>

    // 默认文本聚焦的
    var editor1 =document.getElementById("editor1");
    editor1.focus();

    var editor2 =document.getElementById("editor2");

    var text1 = editor1.value;
    var text2 = editor2.value;

    // 当textarea失去焦点的时候 隐藏textarea 现实div
    editor1.onblur = function (){
        editor1.style.display = 'none';
        editor2.style.display = 'inline-block';

        editor2.innerHTML = "<h3>" + editor1.value + "</h3>";
    }

    // 当div获取焦点的时候 那么就隐藏div 显示textarea启动编辑功能
    editor2.onfocus = function (){
        editor1.style.display = '';
        editor2.style.display = "none";
        editor1.focus();
    }
    console.log(text2)
</script>
</body>
</html>

难点分析

  • 首先是,如何让这个div的高度根据内容自适应,这里就需要用到min-height这个属性,这个属性就是给这个div盒子指定一个默认的最小大小,当这个大小大过这个最小值的时候,那么就高度根据内容自适应。

  • 第二个难点就是聚焦和失去焦点的问题,这里就要好好的看一下我的js部分是怎么处理的,其实原理并不困难,先默认div隐藏,textarea获得焦点,然后了当div获得焦点的时候,textarea隐藏,当div失去焦点的时候,textarea显示,并且获取焦点。

  • 第三个地方就是设置,当textarea失去焦点的时候把内容同步到div中去。

// 当textarea失去焦点的时候 隐藏textarea 现实div
    editor1.onblur = function (){
        editor1.style.display = 'none';
        editor2.style.display = 'inline-block';

        editor2.innerHTML = "<h3>" + editor1.value + "</h3>";
    }

    // 当div获取焦点的时候 那么就隐藏div 显示textarea启动编辑功能
    editor2.onfocus = function (){
        editor1.style.display = '';
        editor2.style.display = "none";
        editor1.focus();
    }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HTMLCSSJS都是前端开发中常用的技术,用于构建网页和实现交互功能。可以通过以下步骤来下载它们: 1. HTML下载:HTML是网页的基础语言,可以通过任何文本编辑器创建HTML文件,然后保存为.html扩展名。你可以使用浏览器打开这个文件来查看网页的效果。如果你想下载已经存在的网页,可以在浏览器中点击右键并选择“保存页面为”来保存HTML文件。 2. CSS下载:CSS用于美化网页的样式和布局。你可以在HTML文件的<head>标签内使用<link>标签引入外部的CSS文件,也可以在<style>标签内直接编写CSS样式。如果你想下载已经存在的CSS文件,可以通过右键点击文件并选择“保存链接为”来保存CSS文件。 3. JS下载:JS用于实现网页的交互功能。你可以在HTML文件的<script>标签内直接编写JS代码,也可以使用<script src="xxx.js"></script>的方式引入外部的JS文件。如果你想下载已经存在的JS文件,可以通过右键点击文件并选择“保存链接为”来保存JS文件。 请注意,下载HTMLCSSJS文件只是将文件保存到你的本地计算机中,以供你查看和编辑。这些文件的运行还依赖于浏览器的解析和执行能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [HTML+CSS+JS](https://blog.csdn.net/qq_41555350/article/details/127003745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客李华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值