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:
希望我的回答能够帮助到你,望采纳,祝学习愉快!