2017-09-19 96 views
2

我試圖通過使用animatewidth: toggle一旦用戶單擊圖像(如下面的jsfiddle所示),在圖像旁邊的文本上實現滑動效果。寬度切換動畫 - 毛刺效應

我遇到的問題是,當它「滑動」時,它會在單詞之間產生干擾;我的假設是,這是由於單詞在元素中移動。

JSFiddle

$('img').on('click', function(e) { 
 
    $('span').animate({ 
 
    width: 'toggle' 
 
    }, 400) 
 
});
span { 
 
    display: inline-block; 
 
    max-height: 20px; 
 
    width: auto; 
 
    position: absolute; 
 
    overflow: hidden; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<img src="http://via.placeholder.com/50x50" alt=""> 
 
<span>Name Surname</span>

有沒有辦法來解決出問題的效果呢?

+0

請分享相關的截圖,怎麼ü要顯示..? –

+0

在jsfiddle中顯示的唯一問題是,它看起來像是「小故障」,或者另一個單詞不是一個平滑的過渡,正如你單擊圖像時看到的那樣,它會在單詞之間產生小故障效果。 – belthazorNv

+0

@belthazorNv看看我的答案..我不知道你是否可以實現這種方式.. –

回答

3

解決此問題的最簡單方法是通過在您的CSS代碼中設置white-space: nowrap來防止文本換行。

$('img').on('click', function(e) { 
 
    $('span').animate({ 
 
    width: 'toggle' 
 
    }, 1200) 
 
});
span { 
 
    display: inline-block; 
 
    max-height: 20px; 
 
    width: auto; 
 
    white-space: nowrap; 
 
    position: absolute; 
 
    overflow: hidden; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<img src="http://via.placeholder.com/50x50" alt=""> 
 
<span>Name Surname</span>

4

試試這個。

$('img').on('click', function(e) { 
 
\t $('span').animate({width: 'toggle'}, 400); 
 
});
span { 
 
    display: inline-block; 
 
    max-height: 20px; 
 
    width: auto; 
 
    position: absolute; 
 
    overflow: hidden; 
 
}
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<img src="http://via.placeholder.com/50x50" alt=""> 
 
<span>Name&nbsp;Surname</span>
這裏是更新 Fiddle

+2

很好,對此有何解釋? –

+0

@ A.T。我只是用nbsp改變空間。多數民衆贊成在所有.. haha​​ha –

+0

可以有一個簡單的CSS解決方案,而不接觸HTML代碼,如我的回答中所解釋的 –