【发布时间】:2013-10-08 02:21:44
【问题描述】:
如果文本比当前输入宽度宽,我想显示输入类型文本的内容。
当我悬停该字段时,我希望文本向左滚动或类似的东西,以便查看隐藏的文本。
谢谢。
注意:请告诉我是否必须添加/更改问题的标签。
【问题讨论】:
-
问题很好,也很清楚,但是您自己尝试过吗?很高兴看到一些研究或代码工作。
标签: javascript html
如果文本比当前输入宽度宽,我想显示输入类型文本的内容。
当我悬停该字段时,我希望文本向左滚动或类似的东西,以便查看隐藏的文本。
谢谢。
注意:请告诉我是否必须添加/更改问题的标签。
【问题讨论】:
标签: javascript html
我想过我该怎么做,这就是我想出的。
在输入悬停时,我将获取输入值并将其放入 div(或任何其他元素)中。然后获取该 div 的宽度并将其与输入的宽度进行比较。如果 div 比输入宽,那么我将通过宽度的差异对输入文本缩进进行动画处理。
$('input').hover(function(){
var temp = $('div').html($(this).val()).width();
if($(this).width() < temp){
$(this).animate({
textIndent: $(this).width()-temp
}, 100);
}
});
您可以在此处查看完整的解决方案:http://jsfiddle.net/taneleero/tB5C5/2/
应该足以让你继续前进。
【讨论】:
嗯,尽管我确实发表了评论。自己无法抗拒这一点。使用 jQuery:
<input type="text" id="txt" value="A very long text goes here very long text goes here very long text goes here very long text goes here very long text goes here indeed."></input>
$('#txt').hover(
function() {
$(this).animate({"scrollLeft": this.scrollWidth}, this.value.length*50)
},
function() {
$(this).stop();
this.scrollLeft = 0;
}
)
这里 jQuery .animate() 用于动画.scrollLeft 输入字段中文本的位置。动画持续时间与文本长度相关,因此各种文本的速度应该相同。当鼠标离开输入控件时 - 滚动位置重置为原始位置。
如果您在 Google 上搜索一下“输入文本向左滚动”,您会找到像 this 这样的答案,将其与 hover 和 animate 上的 jQuery 文档结合起来,您可以自己拼凑解决方案。
【讨论】: