加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
jquery.beattext.js 2.33 KB
一键复制 编辑 原始数据 按行查看 历史
ashunun 提交于 2021-12-16 00:12 . He love sauce
/*
* @auther rstyro
* @blog http://sealo.xyz/
* @Date 2018-04-05
*/
(function($) {
$.fn.beatText = function(options) {
var defaults = {
beatHeight: '2em',
upTime: 700,
downTime: 700,
isAuth:true,
isRotate:true
};
var options = $.extend(defaults, options);
console.log(options);
return this.each(function() {
var obj = $(this);
if (obj.text() !== obj.html()) {
return
};
var text = obj.text();
var newMarkup = '';
for (var i = 0; i <= text.length; i++) {
var character = text.slice(i, i + 1);
newMarkup += ($.trim(character)) ? '<span class="beat-char">' + character + '</span>' : character
}
obj.html(newMarkup);
if(!options.isAuth){
obj.find('span.beat-char').each(function(index,el) {
$(this).mouseover(function() {
beatAnimate($(this),options);
})
})
}else{
//自动跳动的动画
obj.find('span.beat-char:first').animate({
bottom: options.beatHeight
}, {
queue: false,
duration: options.upTime,
easing: 'easeOutCubic',
complete: function() {
$(this).animate({
bottom: 0
}, {
queue: false,
duration: options.downTime,
easing: 'easeOutBounce',
complete:function(){
beatAnimate($(this).next(),options);
}
})
}
});
}
})
}
function beatAnimate(el,options){
if(options.isRotate){
el.addClass("rotate");
}
el.animate({
bottom: options.beatHeight
}, {
queue: false,
duration: options.upTime,
easing: 'easeOutCubic',
complete: function() {
el.removeClass("rotate");
$(this).animate({
bottom: 0
}, {
queue: false,
duration: options.downTime,
easing: 'easeOutBounce',
complete:function(){
if(options.isAuth){
var len = el.parent().children().length;
var indexNum = el.index();
if(indexNum == (len-1)){
beatAnimate(el.parent().find('span.beat-char:first'),options);
}else{
beatAnimate(el.next(),options);
}
}
}
})
}
})
}
})(jQuery);
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化