js簡單富文字編輯器效果程式碼例項
本章一段程式碼例項,實現了簡單的富文字編輯器功能。
當然這個效果不一定有實用價值,不過可以學習一下知識和開闊一下程式設計思路。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { margin: 0; padding: 0; } li { list-style-type: none; } label { cursor: pointer; } #wrap { width: 80%; height: 400px; margin: 20px auto; box-shadow: #272727 0px 0px 5px; } .menu { width: 100%; height: 49px; border-bottom: 1px solid #272727; } .menu > li { line-height: 49px; height: 49px; float: left; padding: 0 10px; cursor: pointer; text-align: center; position: relative; } .menu > li:after { content: "|"; width: 5px; position: absolute; right: 0; top: 0; } .menu > li label { width: 100%; height: 100%; display: inline-block; } .edit_wrap { width: 96%; padding: 2%; height: calc(100% - 50px - 4%); overflow: auto; line-height: 1.5; outline: none; } .btnBox { display: none; position: absolute; left: 0; top: 49px; width: 100%; } .btnBox > li { width: 100%; height: 35px; line-height: 35px; text-align: center; background: #fff; } input { border: none; width: 100%; height: 100%; cursor: pointer; outline: none; font-size: 16px; background: inherit; } .menu li:hover ul { display: block; } .btnBox > li:hover, .menu > li:hover { background: #CCCCCC; } .item { list-style-type: square !important; margin-left: 10px; } </style> <script> window.onload = function() { var editWrap = document.querySelector(".edit_wrap"), setSizeBtn = document.querySelectorAll(".size"), setFormatBtn = document.querySelectorAll(".format"), setColorBtn = document.querySelectorAll(".color"), setBGColorBtn = document.querySelectorAll(".BGcolor"), Fbtn = document.querySelectorAll(".Fbtn"), Tbtn = document.querySelectorAll(".Tbtn"); for (var i = 0; i < 4; i++) { setSizeBtn[i].addEventListener("click", setTxtStyle); setColorBtn[i].addEventListener("click", setTxtStyle); setBGColorBtn[i].addEventListener("click", setTxtStyle); setFormatBtn[i].addEventListener("click", setTxtStyle); }; for (var i = 0; i < Fbtn.length; i++) { Fbtn[i].addEventListener("click", setTxtStyle); }; function setTxtStyle(e) { var that = e.target, type = "", bool = false, valueTxt = this.getAttribute("data") || ""; switch (that.className) { case "color": type = "ForeColor"; break; case "size": type = "FontSize"; break; case "BGcolor": type = "BackColor"; break; case "format": type = this.getAttribute("data-type"); break; case "Fbtn": type = this.getAttribute("data-type"); break; default: break; }; document.execCommand(type, bool, valueTxt); }; } </script> </head> <body> <div id="wrap"> <ul class="menu"> <li> 顏色 <ul class="btnBox fontColorWrap"> <li><input type="button" class="color" value="紅" data="red" /></li> <li><input type="button" class="color" value="黃" data="yellow" /></li> <li><input type="button" class="color" value="綠" data="green" /></li> <li><input type="button" class="color" value="藍" data="blue" /></li> </ul> </li> <li> 字號 <ul class="btnBox fontSizeWrap"> <li><input type="button" class="size" value="15px" data="15" /></li> <li><input type="button" class="size" value="20px" data="20" /></li> <li><input type="button" class="size" value="25px" data="25" /></li> <li><input type="button" class="size" value="30px" data="30" /></li> </ul> </li> <li> 背景顏色 <ul class="btnBox BGColorWrap"> <li><input type="button" class="BGcolor" value="紅" data="red" /></li> <li><input type="button" class="BGcolor" value="黃" data="yellow" /></li> <li><input type="button" class="BGcolor" value="綠" data="green" /></li> <li><input type="button" class="BGcolor" value="藍" data="blue" /></li> </ul> </li> <li> 對齊 <ul class="btnBox formatWrap"> <li><input type="button" class="format" value="居中" data-type="JustifyCenter" /></li> <li><input type="button" class="format" value="左邊" data-type="JustifyLeft" /></li> <li><input type="button" class="format" value="右邊" data-type="JustifyRight" /></li> <li><input type="button" class="format" value="無" data-type="JustifyRight" disabled="disabled" /></li> </ul> </li> <li><input type="button" class="Fbtn" value="斜體" data-type="Italic" /></li> <li><input type="button" class="Fbtn" value="粗體" data-type="Bold" /></li> <li><input type="button" class="Fbtn" value="下劃線" data-type="Underline" /></li> </ul> <div class="edit_wrap" contenteditable="true"> 本站的url地址是<a href="http://www.softwhy.com" target="_blank">www.softwhy.com</a> </div> </div> </body> </html>
相關文章
- 淡入淡出效果簡單程式碼例項
- Vue.js編輯文字--菜鳥教程例項Vue.js
- 淺析富文字編輯器框架Slate.js框架JS
- SpringMVC整合富文字編輯器SpringMVC
- html實現簡單ListViews效果的例項程式碼HTMLView
- 當前文字框高亮效果程式碼例項
- 分享 - 富文字編輯器 Froala Editor
- SSM使用UEditor富文字編輯器SSM
- 線上富文字編輯器初探
- 半成品md富文字編輯器
- [Djangorestframework]-富文字編輯器的使用DjangoRESTFramework
- 一個富文字編輯器quill 以Vue專案為例UIVue
- 簡單的文字編輯
- JS 預編譯程式碼例項分析JS編譯
- 深入淺出contenteditable富文字編輯器
- Eleditor移動端富文字編輯器
- CSS3文字凹凸效果程式碼例項CSSS3
- vue 富文字編輯器 vue-quill-editorVueUI
- Django後臺管理配置富文字編輯器Django
- 在VueJS中使用 froala 富文字編輯器VueJS
- Tinymce - 宇宙第一富文字編輯器?[1]
- Tinymce - 宇宙第一富文字編輯器?[2]
- Tinymce - 宇宙第一富文字編輯器?[3]
- 九、Vue+Element使用富文字編輯器Vue
- HTML 頁面使用 wangeditor 富文字編輯器HTML
- CSS3文字陰影效果程式碼例項CSSS3
- Slate.js – 革命性的富文字編輯框架JS框架
- [MAUI]整合富文字編輯器Editor.js至.NET MAUI Blazor專案UIJSBlazor
- 富文字編輯器 quill.js 開發(二): 游標和選區UIJS
- 幾種開源富文字編輯器對比
- quill 富文字編輯器自定義格式化UI
- iOS使用UITableView實現的富文字編輯器iOSUIView
- 富文字及編輯器的跨平臺方案
- 微信小程式圖文編輯元件開發(偽富文字編輯)微信小程式元件
- 如何在Tower開源的富文字編輯器Simditor中使用PrismJS來高亮程式碼?JS
- Klipped for Mac - 極簡文字編輯器Mac
- 關於專案中使用的富文字編輯器markdown和傳統的富文字編輯器的對比和選擇
- 富文字編輯器:UEditor與wangEditor 初使用總結
- 各種富文字/ HTML編輯器和框架比較HTML框架