<p class="text">
<p class="desc">目木家居旗舰店,专注家居二十年。我们彰显个性,具有浓郁现代感现代风格家居设计的特色是,其设计的元素、材料都很单一,这种设计风格已经成为越来越多时尚潮人装修的首选,现代风格家居设计从整体到局部、从空间到室内陈设塑造,精雕细琢,给人一丝不苟的印象</p>
<a href="javascript:void(0);" class="more">更多</a>
</p>
Wie erreicht man diesen Effekt? Der Erweiterungspfeil ändert sich, wenn man ihn reduziert.
Ich habe versucht, den Effekt zu schreiben. Er scheint nicht ideal zu sein, da die Höhe der Schrift hier festgelegt ist, aber die Menge des Textes ist ungewiss.
Demo
直接在p外层包上一层,外层overflow隐藏,获取p的高度设置即可;
注意p的默认margin,下面例子用父元素的padding抵消;
其实挺简单的:
如果你要根据文字数量来展开或者收缩,那么你就根据文字的
length
来设定判断条件,当长度小于的时候format
一份html
,这个html
上面没有图标,当长度大于规定长度时,收缩时,对所有文字字符串进行截取然后拼接一个展开的图标,这个font-awesome
上面有很多,就对应然后展示到页面上,然后展开也是一样的套路,只不过不用截取字符串了,就把所有字符串拼接一个收缩的图标即可,然后分别在两个图标上面绑定事件,我在下面给了我之前实现的具体例子,代码不全,给你提供思路及实现应该是足够了动画的话,试试这个:
demo
前几天看了 @姑奶奶 的回答(这里)受到了一些启发。
重点在于:不定高度的情况下的展开,先将高度设置为auto,再使用
getComputedStyle
获取到高度,然后设置高度为0,在使用获取到的高度去做动画。