Svg 嵌入可编辑的div
生活随笔
收集整理的這篇文章主要介紹了
Svg 嵌入可编辑的div
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>>
svg里面的foreignObject 標(biāo)簽可以嵌入div。
注意格式第一個標(biāo)簽加上xmlns="http://www.w3.org/1999/xhtml"。
下面主要說一下div的可以編輯狀態(tài)。
首先是第一個屬性contenteditable,div可以編輯。
樣式-webkit-user-select: text,為了在手機(jī)端可以使用。
<meta name="format-detection" content="telephone=no" /> //讓手機(jī)號不要自動變成鏈接,手機(jī)端用 var textHtml = `<foreignObject width="${width}" height="${height}"><div xmlns="http://www.w3.org/1999/xhtml"contenteditable = truestyle="font-size:${fsize}px; text-align: ${fontalign};text-decoration:${tdecoration};letter-spacing:${fontspace}px; color:${fontcolor};line-height:${linespace};font-style:${fstyle};font-weight: ${fontbold};-webkit-user-select: text;font-family: ${ffamily}" class="initDiv" >${fontcontent} ${initDiv}</div></foreignObject> `;手機(jī)端給div添加change事件。其他方式不好用
$(".initDiv", $text)[0].addEventListener('input', function(){minsize($text, fsize); });保存文字的框不變,自動根據(jù)文字的數(shù)量縮小放大文字。
function minsize($text ,fize){var $content=$(".initDiv", $text);var $box=$("foreignObject", $text);let fontSize = parseInt($content.css('font-size'));if($content.height() >= $box.height()){let minSc = (fontSize - 1) / fontSize;let lineHeight = parseInt($content.css('line-height'));let letterSpacing = parseInt($content.css('letter-spacing'));lineHeight = lineHeight * minSc;letterSpacing = letterSpacing * minSc;$content.css('font-size',fontSize - 1 +'px').css('line-height',lineHeight +'px').css('letter-spacing',letterSpacing +'px');minsize($text, 0)} else if (fontSize < fize){let minSc = (fontSize + 2) / fontSize;let lineHeight = parseInt($content.css('line-height'));let letterSpacing = parseInt($content.css('letter-spacing'));lineHeight = lineHeight * minSc;letterSpacing = letterSpacing * minSc;$content.css('font-size',fontSize + 1 +'px').css('line-height',lineHeight +'px').css('letter-spacing',letterSpacing +'px');minsize($text ,fize)} }轉(zhuǎn)載于:https://my.oschina.net/xmqywx/blog/1588360
總結(jié)
以上是生活随笔為你收集整理的Svg 嵌入可编辑的div的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Geth的命令行介绍
- 下一篇: VHD安装的Win7 X64系统迁移到V