JavaScript 检查链接内的文本锚文本是否溢出
javascript check if text anchor text inside a link overflows
当我
有这个css/html时,是否可以检查锚文本是否溢出?
<a href="#" style"overflow:hidden; width:100px; display:block;>
This is a very long text. This is a very long text. This is a very long text.
</a>
我使用 Jquery 或纯 JavaScript
您可以将文本内容分配给 tmp 元素,然后计算其宽度<a>
宽度,以检查内容是否溢出。见下文,
演示
$('a').on('click', function () {
var $tmp = $('<a/>')
.text($(this).text())
.css('display','none')
.appendTo('body');
alert(($tmp.width() > $(this).width())?'Overflows':'Perfectly Inside');
$tmp.remove();
});
我建议:
var as = document.getElementsByTagName('a');
for (var i=0,len=as.length;i<len;i++){
var that = as[i]
w = that.offsetWidth,
w2 = that.scrollWidth;
if (w<w2) {
console.log("This content overran!");
}
}
JS小提琴演示。
<小时 />几乎以上,但以下内容还为 DOM 添加了"报告"元素:
var as = document.getElementsByTagName('a');
for (var i=0,len=as.length;i<len;i++){
var that = as[i],
w = that.offsetWidth,
w2 = that.scrollWidth,
s = document.createElement('span');
if (w<w2) {
var text = document.createTextNode('This content overran the container, a, element by ' + (w2-w) + 'px.');
s.appendChild(text);
that.parentNode.insertBefore(s,that.nextSibling);
}
}
JS小提琴演示。
试试这个
<div id="parent" style="overflow:hidden; width:100px;display:block">
<a id="textblock" href="#" style="white-space: nowrap;" >
This
</a>
</div>
<script>
var p=document.getElementById("parent");
var tb=document.getElementById("textblock");
(p.offsetWidth<tb.offsetWidth)?alert('long'):alert('short');
</script>
HTML:
<a id="a1" href="#" style="overflow:hidden; width:100px; height:10px; display:block">
This is a very long text. This is a very long text. This is a very long text.
</a>
<a id="a2" href="#" style="width:100px; height:10px; display:block">
This is a very long text. This is a very long text. This is a very long text.
</a>
JS:
function hasOverflow( $el ){
return $el.css("overflow")==="hidden" &&
($el.prop("clientWidth") < $el.prop("scrollWidth") ||
$el.prop("clientHeight") < $el.prop("scrollHeight"));
}
console.log( hasOverflow($("#a1")) ); //true
console.log( hasOverflow($("#a2")) ); //false
演示
相关文章:
- 高图表的文本溢出问题
- 如何检查浏览器中是否支持文本溢出:省略号
- 当屏幕大小为中或小或xs时,文本溢出,会弄乱整个表.不过,它在全屏模式下运行良好
- 在移动设备领域,空白:nowrap;溢出:隐藏;文本溢出:省略号;有点不起作用
- 我的拉斐尔“文本溢出:省略号”实现插件是矫枉过正吗?
- 检测文本溢出:省略号在输入字段上是否处于活动状态
- 文本溢出省略号在Windows(IE 10)中不起作用
- 左侧的文本溢出省略号
- 我如何在具有“拖动”的文本上实现水平滚动功能;文本溢出:省略号;没有滚动条
- jQueryflot-适合可变范围图表的时间轴刻度标签,没有文本溢出
- 当页眉有文本溢出省略号时,在页眉内的右侧浮动文本
- 使用Javascript查找文本溢出的位置
- 没有"white-space: nowrap"的文本溢出省略符
- 文本溢出:Internet explorer中的省略号问题
- 如何使文本溢出省略号在多行文本上工作
- HTML文本溢出省略号检测
- 如何将我的文本溢出转换为列
- 如何在应用文本溢出属性时获取结果文本
- 文本溢出:省略号不;无法正确选择HTML
- 如何检测文本溢出/包装Kinetic.text