javascript - e.offsetWidth 返回错误值

标签 javascript html css

在我的应用程序中,我想检查是否有文本溢出(省略号)。为此,我检查 e.offsetWidth < e.scrollWidth但它们返回相等的值,表示 offsetWidth返回错误 值。这是我的实现:

CSS:

.less{
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.complete{
  word-wrap: break-word;
}

.collapse{
  color:blue;
  font-size:13px;
  cursor:pointer;
}

.hideElement{
 display: none;
}

#seemore:after{
  content: " \000BB";
}
#seeless:before{
   content:"\000AB\ ";
}

#description {
  width: 100%;
  overflow: hidden;
}

HTML:

<div id = "description">
    <div id="lessdescription" class="less"></div>
    <div id="seemore" class="collapse"></div>
    <div id="seeless" class="collapse hideElement"></div>
</div>

JS

function manageReportDescription() {
    var descriptionElement = document.getElementById("lessdescription");

    return descriptionElement.offsetWidth < descriptionElement.scrollWidth;
}   

I want to use pure JS properties (without relying on jQuery)

最佳答案

您的 Javascript 代码没问题,问题是因为您的 div 中没有文本,所以 offsetWidth 等于屏幕宽度和 scrollWidth也等于屏幕宽度,所以比较将返回 false 因为比较的两个元素具有相同的值 screen width ,尝试在你的 lessdescription< 中添加一些文本 分区

When adding some text to the <code>div</code> the values change, and it return <code>true</code>

关于javascript - e.offsetWidth 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39250073/

相关文章:

javascript - 利用 Mongo 的 ES6 默认参数

jquery - 如何在 html 表格单元格中的 <TD> 末尾插入文本

javascript - 如何防止在头部从服务器加载我的真实图像时出现损坏的图像

javascript - 结合矩阵中的多次旋转

html - 上边距不起作用

javascript - 使用ajax调用php脚本不起作用

javascript - 如何使用javascript在html中动态添加行

javascript - 为什么 `.getElementById` 在节点上不起作用?

html - 调整两个相互堆叠的 div 的内容大小,高度为页面的 50% - CSS

html - PDF 作为 HTML 中的空白页