如果宽度>在悬停时移动文本420

时间:2014-01-11 15:22:24

标签: javascript jquery html css

我想在你将鼠标悬停在 article_head 时,检查 span 宽度,如果它更大,那么420px(parrent div width - article_head)移动文本以查看整个。我知道,它有点复杂......

  

示例:

     
    

enter image description here

  
     

现在,当您悬停“如何安装Windows ...”时,它将移动文本并显示

     
    

enter image description here

  
<div class="article_head"><span>Text with bigger width than 420px</span></div>

.article_head span{
    font-size: 40px;
    font-weight: 300;
    line-height: 110% !important;
    text-transform: none !important;
    white-space:nowrap;
}
.article_head{
    line-height: 110% !important;
    margin:-10px 0 10px;
    height: 50px;
    overflow: hidden;
    width:420px
}

我尝试了几次但没有成功......

2 个答案:

答案 0 :(得分:3)

您可以使用.scrollLeft方法在文章头部内滚动。您可以通过评估htmlElement.scrollWidth - htmlElement.clientWidth

来计算最大滚动位置

所以你可以实现两个功能: 一个滚动到右边:

function move(htmlElement) {
    console.log(htmlElement);
    htmlElement.scrollLeft = htmlElement.scrollWidth - htmlElement.clientWidth;
}

和重置滚动位置的功能:

function moveBack(htmlElement) {
    htmlElement.scrollLeft = 0;
}

看一下这个例子:http://jsfiddle.net/2ysP7/

答案 1 :(得分:2)

尝试 this Example

<div class="article_head">
    <span>Now, when you hover "How to install Windows..." it will move text and show Now, when you hover "How to install Windows..." it will move text and show </span>
<div>

CSS

添加位置:文章头的相对

body {padding:20px;}
.article_head span{
    font-size: 40px;
    font-weight: 300;
    line-height: 110% !important;
    text-transform: none !important;
    white-space:nowrap;
    position:relative;
}
.article_head{
    line-height: 110% !important;
    margin:-10px 0 10px;
    height: 50px;
    overflow: hidden;
    width:420px
}

的jQuery

你也可以添加像this example

这样的缓动
$(document).ready(function () {
    $('.article_head').each(function () {
        var head_width = $(this).width();
        var span_width = $(this).find('span').innerWidth();
            $('.article_head').hover(function () {
        if (span_width > head_width) { 
            $(this).find('span').stop().animate({ 'right': head_width });
        }
        }, function () {
            $(this).find('span').stop().animate({ 'right': '0px' });
        });
    });
});