【发布时间】:2012-11-13 09:19:15
【问题描述】:
我找到了这个代码:link
$(".show-more a").on("click", function() {
var $this = $(this);
var $content = $this.parent().prev("div.content");
var linkText = $this.text().toUpperCase();
if(linkText === "SHOW MORE"){
linkText = "Show less";
$content.switchClass("hideContent", "showContent", 400);
} else {
linkText = "Show more";
$content.switchClass("showContent", "hideContent", 400);
};
$this.text(linkText);
});
CSS:
div.text-container {
margin: 0 auto;
width: 75%;
}
.hideContent {
overflow: hidden;
line-height: 1em;
height: 2em;
}
.showContent {
line-height: 1em;
height: auto;
}
.showContent{
height: auto;
}
h1 {
font-size: 24px;
}
p {
padding: 10px 0;
}
.show-more {
padding: 10px 0;
text-align: center;
}
这正是我要找的,但正如你在这里看到的,如果你修改它 (link),如果你只有一两行,“显示更多”链接就会出现,而不是在这种情况下需要。 感谢您的回答!
【问题讨论】:
-
那么,你的问题是......?这与您在此处找到并发布的代码无关,而是与创建链接的代码有关,不是吗?如果是这样,请告诉我们!
-
@Bergi 他有一把小提琴jsfiddle.net/Wpn94/2
-
这里实际上没有任何逻辑可以显示或隐藏内容。缺少
showContent和hideContent函数。 -
@sabithpocker:是的,我看到了——但我找不到任何与他的问题(或任何问题)相关的代码。否则,答案将是 jsfiddle.net/Wpn94/3 - 现在没有少于一行的“显示更多”链接!
-
@MarkI:您可以检查文本所在 div 的
clientHeight和scrollHeight并将它们相互比较以确定是否需要显示链接。有关更多详细信息和工作演示,请参阅我的答案。
标签: javascript jquery html css