这可能更像是一个通用的算法问题,而不是一个jquery问题。
我的网站正在通过 API 提取数据,以div 的形式在首页上显示信息。我正在使用 js/jquery 脚本将 css 动画应用于溢出超过其容器宽度的文本。我有一个 css 类,如果存在溢出,则应用该类,并且该类设置了动画属性。
我的问题是某些文本比其他文本溢出更多,因此我正在寻找一种方法,使动画时间根据溢出量而可变。这样,文本只会滚动到行尾,然后重置。
这是代码,以防万一我缺少一个jquery解决方案。
jQuery(function($) {
$('span.beer-info').each(function(i) {
var element = $(this)
.clone()
.css({display: 'inline', width: 'auto', visibility: 'hidden'})
.appendTo('body');
if( element.width() > $(this).width() ) {
$(this).addClass( "mover-1" );
}
element.remove();
});
});
Jsfiddle 示例
您可以通过以下方式根据元素的宽度设置动画持续时间:
// ...
if( element.width() > $(this).width() ) {
$(this).addClass( "mover-1" );
// This is an example calculation, you can find a formula that works for you
$(this).css('animation-duration', ($(this).width() / element.width() * 4) + 's')
}