jQuery:在 .innerHTML 或 .text 更改时制作动画

标签 jquery animation

我通过使用 jQuery 动态更改网站上的文本来翻译我的网站,如下所示:

<span id="mySpan">Something in English</span>

$('#mySpan').html("Something else in Spanish");

效果很好,但是由于文本长度的变化,这是一个困难的过渡,新文本刚刚出现,父元素立即调整大小。

有没有一种简单的方法可以在文本更改期间设置动画/简化过渡?喜欢淡入淡出和/或很好地调整大小吗?

我知道隐藏元素是可能的,但因为我有很多文本,所以如果不需要,我不想加载它。

谢谢!

最佳答案

好吧,如果您的 span 元素有一个父元素,例如:

<div class="parent">
    <span id="mySpan">Something in English</span>
</div>

你可以这样做:

$('#mySpan').animate({'opacity': 0}, 400, function(){
        $(this).html('Something in Spanish').animate({'opacity': 1}, 400);    
    });

基本上,您将子级 span 的不透明度设置为 0,400过渡时间(以毫秒为单位)。该操作完成后,您执行一个回调函数,将 spanhtml 替换为所需的文本,同时它仍然具有 opacity: 0,并且然后你做向后动画到opacity: 1

Live example

关于jQuery:在 .innerHTML 或 .text 更改时制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26429480/

相关文章:

jquery - 更改数据表中的链接样式

android - 将图像从不透明动画化为半透明(并保持其半透明)

javascript - 将 jquery 选择器与变量相乘

wpf - 将动画和触发器定义为可重用资源?

javascript - jQuery 盒子阴影动画 - 这可能吗?

ios - 从另一个 anchor 在背景中缩放动画

android - 不支持 React-native Animation.event 样式属性

jquery - 将 html 附加到元素的更简洁的方法

jQuery 自动完成问题 - 如果用户没有特别选择则不匹配

jquery - 数据表标题宽度/对齐问题