#
<p class="text">
<p class="desc">目木家居旗舰店,专注家居二十年。我们彰显个性,具有浓郁现代感现代风格家居设计的特色是,其设计的元素、材料都很单一,这种设计风格已经成为越来越多时尚潮人装修的首选,现代风格家居设计从整体到局部、从空间到室内陈设塑造,精雕细琢,给人一丝不苟的印象</p>
<a href="javascript:void(0);" class="more">更多</a>
</p>
這樣的效果該如何實現,收起展開箭頭有變化
試著寫了下效果貌似不太理想,因為這裡寫的高度是個固定的,但是這個文字的多少是不確定的
demo
直接在p外層包上一層,外層overflow隱藏,取得p的高度設定即可;
注意p的預設margin,下面範例用父元素的padding抵消;
其實挺簡單的:
如果你要根據文字數量來展開或收縮,那麼你就根據文字的
length
來設定判斷條件,當長度小於的時候format
一份html
,這個html
上面沒有圖標,當長度大於規定長度時,收縮時,對所有文字字符串進行截取然後拼接一個展開的圖標,這個font-awesome
上面有很多,就對應然後展示到頁面上,然後展開也是一樣的套路,只不過不用截取字串了,就把所有字串拼接一個收縮的圖示即可,然後分別在兩個圖示上面綁定事件,我在下面給了我之前實現的具體例子,程式碼不全,給你提供思路及實現應該是足夠了動畫的話,試試看這個:
demo
前幾天看了 @姑奶奶 的回答(這裡)受到了一些啟發。
重點在於:不定高度的情況下的展開,先將高度設定為auto,再使用
getComputedStyle
取得到高度,然後設定高度為0,在使用取得到的高度去做動畫。