日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Svg 嵌入可编辑的div

發布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Svg 嵌入可编辑的div 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>>

svg里面的foreignObject 標簽可以嵌入div。

注意格式第一個標簽加上xmlns="http://www.w3.org/1999/xhtml"。

下面主要說一下div的可以編輯狀態。

首先是第一個屬性contenteditable,div可以編輯。

樣式-webkit-user-select: text,為了在手機端可以使用。

<meta name="format-detection" content="telephone=no" /> //讓手機號不要自動變成鏈接,手機端用 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> `;

手機端給div添加change事件。其他方式不好用

$(".initDiv", $text)[0].addEventListener('input', function(){minsize($text, fsize); });

保存文字的框不變,自動根據文字的數量縮小放大文字。

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)} }

轉載于:https://my.oschina.net/xmqywx/blog/1588360

總結

以上是生活随笔為你收集整理的Svg 嵌入可编辑的div的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。