截断文本并在鼠标悬停时显示
Truncate the text and show it on mouseover
我需要截断文本(用…在最后)和鼠标悬停时,整个文本应该展开。
我尝试用下面的代码截断。这段代码的问题是,它在点击...
时扩展了内容但我需要它在用户鼠标移到p标签
var len = 100;
var p = document.getElementById('truncateMe');
if (p) {
var trunc = p.innerHTML;
if (trunc.length > len) {
trunc = trunc.substring(0, len);
trunc = trunc.replace(/'w+$/, '');
trunc += '<a href="#" ' +
'onmouseover="this.parentNode.innerHTML=' +
'unescape('''+escape(p.innerHTML)+''');return false;">' +
'...<'/a>';
p.innerHTML = trunc;
}
}
我正在寻找一种简单的方法来做这件事。
提前感谢。
PS:没有CSS解决方案,因为它不兼容所有浏览器(IE7)
你可以这样使用Jquery:
HTML:<p>Some Text</p>
JS:
var lengthText = 30;
var text = $('p').text();
var shortText = $.trim(text).substring(0, lengthText).split(" ").slice(0, -1).join(" ") + "...";
$('p').text(shortText);
$('p').hover(function(){
$(this).text(text);
}, function(){
$(this).text(shortText);
});
演示:http://jsfiddle.net/1yzzbv4b/2/
或者你也可以通过css3属性text-overflow:ellipsis;
p{
text-overflow:ellipsis;
width: 250px;
white-space: nowrap;
overflow: hidden;
}
p:hover{
text-overflow:clip;
width:auto;
white-space: normal;
}
演示:http://jsfiddle.net/1yzzbv4b/
假设您将p
-elements的类设置为escape-text
,那么下面的jquery代码应该可以工作。
$(document).ready(function() {
$ps = $('.escape-text');
$ps.each(function(i, el) {
$(el).data('full-text', el.innerHTML);
strip(el);
});
$ps.on('mouseover', function() {
$(this).text($(this).data('full-text'));
}).on('mouseout', function() {
$(this).text(strip(this));
})
});
var length = 100;
var strip = function(el) {
el.innerHTML = el.innerHTML.substr(0, length) + '...';
}
相关文章:
- 将href链接添加到通过js鼠标悬停显示的图像
- 鼠标悬停显示 Lightbox2 和 Milkbox 照片的 HTML
- 使用鼠标悬停显示图像,图像位于 li-tag 之外
- 悬停显示下一个“ul”的“李”
- 拉斐尔JS - 悬停 - 显示/隐藏单独的 DIV
- Javascript/CSS/HTML 鼠标悬停显示没有可点击链接的远程页面
- Javascript 仅在 iPad 上悬停显示菜单
- 更正菜单悬停显示
- 在jquery中使用悬停显示和隐藏文本
- jQuery悬停显示和隐藏我的内容
- JQuery在图像悬停显示标题标签内容,可能的
- 如何设置此鼠标悬停显示,即使鼠标悬停超过3秒
- 在图像悬停显示列表项
- Jquery悬停显示和隐藏可见性问题
- 鼠标悬停显示添加购物车按钮和折扣图像
- 在缩略图's悬停显示更大的图像
- 如何改变z数据悬停显示百分比以及百分比的颜色
- 如何设置鼠标悬停显示延迟
- jQuery悬停显示多个元素
- 任何Jquery库显示图像和悬停显示描述