slideUpDown下默认隐藏时init初始化fadeOut的问题
来源:2-7 css3实现其他显示隐藏效果
weixin_慕移动6442865
2019-11-06 13:16:34
老师你好,之前默认box隐藏时fadeOut初始化就在,在CSS下把display改成显示后,fadeOut就没有了,那是不是,如果我把display改成block,那相应的下面这个:
function init($elem,hidenCallback){
if($elem.is(':hidden')){ //hiden
$elem.data('status','hiden');
if(typeof hidenCallback==='function') hidenCallback();
$elem.removeClass('fadeOut'); //这里相应的要移除fadeOut吗??
}else{ //shown
$elem.data('status','shown')
}
}我试了一下确实是这样子。
现在我有一个问题有点不太清楚,slideUpDown下面的init跟封装的init感觉又不太理解了。
上面是隐藏或显示时要添加或移除的Class吗??下面跟上面其实没关系吧??
slideUpDown: {
init:function($elem){
$elem.addClass('transition');
init($elem,function(){
$elem.addClass('slideUpDownCollapse');
});
},
show: function ($elem) {
show($elem,function(){
$elem.off(transition.end).one(transition.end, function () {
$elem.data('status', 'shown').trigger('shown');
})
$elem.show();
setTimeout(function () {
$elem.removeClass('slideUpDownCollapse');
}, 10)
})
},
hide: function ($elem) {
hide($elem,function(){
$elem.off(transition.end).one(transition.end, function () {
$elem.hide();
$elem.data('status', 'hiden').trigger('hiden')
})
$elem.addClass('slideUpDownCollapse');
});
}
},1回答
好帮手慕粉
2019-11-06
同学你好:
1、同学说的是对的哦,要相信自己代码测试的结果哦。
2、上面的init是初始化的显示与隐藏,跟下面的是有关系的哦,老师是将动画里面所有的功能相同的代码(即显示与隐藏)封装到了上面的init函数里面,在单独设置某个动画时,如果有不同的效果就再添加上,如果有显示与隐藏,就直接调用上面封装的init:
希望我的回答能够帮助到你,望采纳,祝学习愉快!