饰心

js、JQuery获取文本的宽高

电脑版发表于:2019/4/18 15:59

页面编写:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>jQuery获取文本宽度、高度</title>
    <script src="Scripts/jquery-3.3.1.js"></script>
</head>
<body>
    <span id="txt" style="display: inline-block;">Hello!剑哥!</span>
</body>
</html>

运行查看宽高:


一、第一种jQuery获取:

    输出:

<script type="text/javascript">
  $(function () {
     console.log("jquery获取 [" + $("#txt").width() + "," + $("#txt").height() + "]:");
  });
</script>

    结果:

二、第二种js获取:

function Size(txt) {
  var p = document.createElement("p");//定义一个p标签来存文本内容
  var result = {};
  result.width = p.offsetWidth;
  result.height = p.offsetHeight;
  p.style.visibility = "hidden";
  p.style.display = "inline-block";
  document.body.appendChild(p);
  if (typeof p.textContent != "undefined") {
      p.textContent = txt;
  } else {
      p.innerText = txt;
  }
  result.width = parseFloat(window.getComputedStyle(p).width) - result.width;
  result.height = parseFloat(window.getComputedStyle(p).height) - result.height;
  return result;
}

对比调用显示效果:

$(function () {
  console.log("jquery获取 [" + $("#txt").width() + "," + $("#txt").height() + "]:");
  var result = Size("Hello!剑哥!");
  console.log("js获取 [" + result.width + "," + result.height + "]:");
});


有了这个宽度我们就可以做一些页面上的事情,比如一段动态加载的文字,当文字超过固定的显示宽度后,就让其滚动显示,就不会出现看不完整的情况


PS:有发现jQuery低版本用width()获取会精确不到小数点后



关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢