jQuery textilate .js -如何“重置”元素HTML并重新启动动画
jQuery Textillate.js - how to "reset" element html and re-start animation
我使用textilate .js (http://jschr.github.io/textillate/)在html的一个跨度动画文本。
动画是手动触发按钮点击('in')。
在动画之后/期间,用户可以点击"重置"按钮将span重新设置回起始html(隐藏的)。然后动画应该再次手动运行"在"按钮点击,但我不能让它工作。
为了更容易看到我在做什么,我创建了这个提琴:
http://jsfiddle.net/nlapolla/mGgd5/225/下面是Fiddle代码:
$('#tlt').textillate({
autoStart: false,
loop: true,
in : { effect: 'bounceInRight' }
});
$('.in').on('click', function () {
$('#tlt').textillate('in');
});
$('.out').on('click', function () {
$('#tlt').textillate('out');
});
$('.reset').on('click', function () {
$('#tlt').html('Some text');
});
#tlt {
font-size:30px;
}
.hideme {
visibility:hidden;
}
<link href="http://jschr.github.io/textillate/assets/animate.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://jschr.github.io/textillate/assets/jquery.lettering.js"></script>
<script src="http://jschr.github.io/textillate/jquery.textillate.js"></script>
<span id="tlt" class='hideme'>Some text</span>
<br/>
<button class="in">in</button>
<button class="reset">Reset/Hide</button>
任何想法都将非常感激!我一直试图让这个工作几个小时-搜索SO,发现了很多很好的建议,但在这种情况下没有任何帮助…谢谢你提供的任何帮助。: o)
我找不到textillate的重新初始化事件,但您可以做的是,删除并重新创建重置元素。并将这些选项封装在一个函数中,并在点击"in"时调用它。它会工作,但我不是一个JS专家,所以很确定有更好的方法做到这一点。
function animate(el) {
$(el).textillate({
autoStart: false,
loop: true,
in : {
effect: 'bounceInRight'
}
});
}
小提琴来了
我知道这篇文章很老了,但是我建立了一个叫做retextillate
的通用函数,你可以用它来调用或重新调用元素上的textillate
- 执行初始呼叫
- 重新初始化同一元素上的给定效果
- 更改是调用
in
动画,out
动画,还是两者都调用。
应该包含所有内容:
function retextillate(element, in_effect = "", out_effect = "", type) {
/*
element : html element with . or # symbol
effect : textillate/animate.css effect you're calling
type : either in, out, or both
*/
$(element).textillate({
loop: true,
autoStart: false,
in : {
effect : in_effect,
delay : 40
},
out : {
effect : out_effect,
reverse : true,
delay : 40,
callback : function() {
$(element).css('opacity', 0);
}
}
});
if ( type == 'in' ) {
$(element).textillate('in');
$(element).css('opacity', 1);
} else if ( type == 'out' ) {
$(element).textillate('out');
} else if ( type == 'both' ) {
$(element).textillate('in');
setTimeout( function() {
$(element).textillate('out');
}, 1000);
}
}
如果你是第一次初始化它,它将继续在元素上调用textillate。为了正确地利用它,您需要定义in
效果和out
效果,无论您是否计划使用它。如果你没有定义一个,它将默认为空白,这是可以的。
与其在每个元素上运行这个
$('.my_element').textillate({
in: { effect : 'slideInLeft' }
});
就像这样命名:
retextillate('.my_element', 'slideinleft', 'fadeOut', 'in');
你可以在同一个元素上反复播放而不必刷新页面:
retextillate('.my_element', 'slideInLeft', 'fadeOut', 'in'); /* will show the slideInLeft animation, then stop */
retextillate('.my_element', 'tada', '', 'in'); /* will show the tada animation, then stop */
retextillate('.my_element', 'tada', 'fadeOut', 'both'); /* will show the tada animation, then the fadout animation, then stop */
retextillate('.my_element', '', 'fadeOut', 'out'); /* will show the fadeout animation, then stop */
相关文章:
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素