关于transitionend兼容
来源:2-6 transition.js
weixin_慕尼黑6514237
2019-11-21 21:53:01

(function () {
var transitionEndEventName = {
transition: 'transitionend',
MozTransition: 'transitionend',
WebkitTransition: 'webkitTransitionEnd',
OTransition: 'oTransitionEnd otransitionend'
};
var transitionEnd = '',
isSupport = false;
for (var name in transitionEndEventName) {
if (document.body.style[name] !== undefined) {
transitionEnd = transitionEndEventName[name];
isSupport = true;
break;
}
};
window.mt = window.mt || {};
window.mt.transition = {
end: transitionEnd,
isSupport: isSupport
};
// alert('11')
})();
var transition = window.mt.transition;//transitionend 兼容性问题
// 公共部分提取
var silent = {
init:function($elem){
if ($elem.is(':hidden')) {
$elem.data('status','hidden')
}else{
$elem.data('status','shown')
}
},
show:function($elem){
if ($elem.data('status')==='show') return;
if ($elem.data('status')==='shown') return;
// 设置状态,显示状态下不执行
$elem.data('status','show').trigger('show');
$elem.show();
$elem.data('status','shown').trigger('shown');
},
hide:function($elem){
if ($elem.data('status')==='hide') return;
if ($elem.data('status')==='hidden') return;
// 设置状态,显示状态下不执行
$elem.data('status','hide').trigger('hide');
$elem.hide();
$elem.data('status','hidden').trigger('hidden')
}
}
var css3 = {
fade:{
init:function($elem){
$elem.addClass('transition');
if ($elem.is(':hidden')) {
$elem.data('status','hidden');
$elem.addClass('fadeOut');
}else{
$elem.data('status','shown');
}
},
show:function($elem){
if ($elem.data('status')==='show') return;
if ($elem.data('status')==='shown') return;
$elem.data('status','show').trigger('show');
$elem.off('transition.end').one('transition.end',function(){
$elem.data('status','shown').trigger('shown');
});
$elem.show();
setTimeout(function(){
$elem.removeClass('fadeOut')
},20)
},
hide:function($elem){
if ($elem.data('status')==='hide') return;
if ($elem.data('status')==='hidden') return;
$elem.data('status','hide').trigger('hide');
$elem.off('transition.end').one('transition.end',function(){
$elem.hide();
$elem.data('status','hidden').trigger('hidden');
});
$elem.addClass('fadeOut');
}
}
};
transitionend执行代码没有问题,当引入兼容文件修改成:transition.end代码不执行show(),hide()。(如图)源码测试也是一样的;
1回答
好帮手慕慕子
2019-11-22
同学你好, 老师测试源码效果是正常的, 不是很清楚同学具体是指修改哪里。
建议:可以先详细的描述一下具体指的是哪里,然后,对你修改代码的地方截图,最后,将你写的html代码也粘贴过来, 便于帮助同学准确高效的定位与解决问题,祝学习愉快~
相似问题
回答 1
回答 1