HTML:
<div id="Header">
<div id="HeaderTitle">
This is a very long title which should should force HeaderTitle to expand.
</div>
</div>
JavaScript的:
$(document).ready(function() {
$('#HeaderTitle').mouseover(function(e) {
var distanceToMove = $(this).width() - $('#Header').width();
var timeToTakeMoving = 30 * distanceToMove;
$(this).animate({
marginLeft: "-" + distanceToMove + "px"
}, timeToTakeMoving);
}).mouseout(function(e) {
$(this).stop(true).animate({
marginLeft: "0px"
});
});
});
JSFiddle: http://jsfiddle.net/QQtp6/7/
我希望将div'HeaderTitle'展开以保持文本内部。这将允许我在鼠标悬停时滚动文本。为什么div不能保留其内容?
编辑:这里的目标不是让所有文字都可见。我想在固定宽度div中显示文本的一部分,然后通过该div滚动文本。
示例:
如果文字是:“FULL TEXT HERE”,我希望只有“FULL TE”才会显示,直到鼠标悬停。在那一点上,我希望它可以过渡到“TEXT HERE”,并且完全隐藏在LHS之外。
EDIT2:我认为解决方案是使用span而不是HeaderTitle的div。一会儿。
EDIT3:发布解决方案
答案 0 :(得分:0)
删除overflow:hidden
会一直扩展div。
更改overflow:auto
并将其设置为100px,并设置滚动条。
答案 1 :(得分:0)
你有一个固定的宽度然后你说要隐藏任何溢出固定宽度的数据:
overflow: hidden;
该属性的目的是隐藏数据以保留所需的格式。如果您希望显示数据,则不希望应用overflow
属性。
如果必须保持100px的宽度,则需要将属性修改为overflow: auto;
,这将添加滚动条,以便仍可以在容器中查看内容。
答案 2 :(得分:0)
overflow: hidden
和width: 100px
都阻止了您的需求。具有固定宽度的div将不会拉伸,然后溢出规则会隐藏溢出的文本。只需删除其中一条规则,最好是溢出规则。
答案 3 :(得分:0)
我通过将嵌套的div元素HeaderTitle更改为span:
来解决了这个问题<div id="Header">
<span id="HeaderTitle">
This is a very long title which should should force HeaderTitle to expand.
</span >
</div>
$(document).ready( function(){
$('#HeaderTitle').mouseover(function (e) {
var distanceToMove = $(this).width() - $('#Header').width();
var timeToTakeMoving = 30 * distanceToMove;
$(this).animate({ marginLeft: "-" + distanceToMove + "px" }, timeToTakeMoving);
}).mouseout(function (e) {
$(this).stop(true).animate({ marginLeft: "0px" });
});
});
#Header
{
width: 100px;
font-size: 15px;
margin-bottom: 5px;
border-radius: 5px;
overflow: hidden;
}
#HeaderTitle
{
white-space: nowrap;
padding-left: 5px;
font-weight: bold;
color: Black;
}
答案 4 :(得分:0)