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:

http://img.mukewang.com/climg/5dc27cd409859cf608120303.jpg希望我的回答能够帮助到你,望采纳,祝学习愉快!

0

0 学习 · 14456 问题

查看课程