这一节是不是只有在IE低版本浏览器才有作用?

这一节是不是只有在IE低版本浏览器才有作用?

我在Chrome里测试的,老师4:50左右出现的动画无效的情况我没有出现,正常显示了,是不是因为浏览器没用对?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,问题解答如下:

1、将fade修改为slideUpDown,代码中只修改了一处,所以测试没有出现老师的效果。这样修改再测试下

showhide.js文件中添加类的代码去掉

http://img1.sycdn.imooc.com//climg/5e9407f8097d46d312060663.jpg

html中修改

http://img1.sycdn.imooc.com//climg/5e94080d093110bf08490723.jpg

这样点击显示按钮是可以显示出来的,但是再点击隐藏的时候不能隐藏,就和老师一致了(视频中一开始就是显示的,所以点击哪个都不好用)。然后再按照课程中修改样式

http://img1.sycdn.imooc.com//climg/5e94084c09e794a805560225.jpg

再次测试就正确了。

2、IE高版本浏览器(10以及以上)是支持transition过渡属性的,所以有过渡效果,可以输出shown和hidden。但是10版本以下的浏览器不支持这个属性,无法进行样式过渡,所以也触发不了shown和hidden 。

http://img1.sycdn.imooc.com//climg/5e940b15091c240604360207.jpg

目前可以先不考虑低版本IE浏览器,主流浏览器能够测试出来即可。

自己再测试理解下,祝学习愉快!

提问者 Aurora_Meteor 2020-04-12 20:08:06

我发现在IE里面控制台只会打印出来show,但是显示和隐藏动画却都显示出来了,不过只显示了show和hide动画,渐变动画没有出现,而且隐藏以后box盒子所占的位置还在。

加上!important以后,点击显示和隐藏都没有动画出现,控制台还是只打印show,也没有报错

  • 提问者 Aurora_Meteor #1
    我跟着往后把原来的height属性注释掉已经加上padding属性,老师是动画显示不出来我的却能显示出来...老师在最后加上padding-top和padding-bottom属性设置为0,并且加上!important后,动画可以显示了,我这样做却显示不出来...为什么?! 我看老师在其他同学的回答中说好像是因为display:none没有注释...可是我注释掉以后所有东西的实现效果还是和老师相反...老师出现不了的动画我的可以出现
    2020-04-12 20:22:09
提问者 Aurora_Meteor 2020-04-12 20:02:27

<!DOCTYPE html>

<html lang="zh-CN">


<head>

    <meta charset="UTF-8">

    <title>显示隐藏模块</title>

    <link rel="stylesheet" href="../css/base.css">

    <style>

        body {

            width: 400px;

            margin: 0 auto;

        }


        .btn {

            width: 50%;

            height: 30px;

        }


        #box {

            display: none;

            width: 100%;

            height: 200px;

            background-color: red;

        }


        .transition {

            -o-transition: all .5s;

            -ms-transition: all .5s;

            -moz-transition: all .5s;

            -webkit-transition: all .5s;

            transition: all .5s;

        }


        .fadeOut {

            visibility: hidden;

            opacity: 0;

        }


        .slideUpDownCollapse{

            height: 0;

        }

    </style>

</head>


<body>

    <button id="btn-show" class="btn">显示</button><button id="btn-hide" class="btn">隐藏</button>

    <div id="box" class="transition"></div>

    <button class="btn">显示2</button>


    <script src="../js/jquery.js"></script>

    <script src="../js/transition.js"></script>

    <script src="../js/showhide.js"></script>

    <script>

        // console.log(window.mt.transition.end);

        // console.log(window.mt.transition.isSupport);


        var $box = $('#box');

        css3.slideUpDown.init($box);


        $('#btn-show').on('click', function () {

            css3.fade.show($box);

        });

        $('#btn-hide').on('click', function () {

            css3.fade.hide($box);

        });

        // 小A

        $box.on('show shown hide hidden', function (e) {

            console.log(e.type);

        });

    </script>

</body>


</html>

var transition = window.mt.transition;


function init($elem, hiddenCallback) {

    if ($elem.is(':hidden')) { //hidden

        $elem.data('status', 'hidden');

        if (typeof hiddenCallback === 'function') hiddenCallback();

        $elem.addClass('fadeOut');

    } else { //shown

        $elem.data('status', 'shown');

    }

}


function show($elem, callback) {

    if ($elem.data('status') === 'show') return;

    if ($elem.data('status') === 'shown') return;

    $elem.data('status', 'show').trigger('show');

    callback();

}


function hide($elem, callback) {

    if ($elem.data('status') === 'hide') return;

    if ($elem.data('status') === 'hidden') return;

    $elem.data('status', 'hide').trigger('hide');

    callback();

}


var silent = {

    init: init,

    show: function ($elem) {

        show($elem, function () {

            $elem.show();

            $elem.data('status', 'shown').trigger('shown');

        });

    },

    hide: function ($elem) {

        hide($elem, function () {

            $elem.hide();

            $elem.data('status', 'hidden').trigger('hidden');

        });

    }

};

var css3 = {

    fade: {

        init: function ($elem) {

            $elem.addClass('transition');

            init($elem, function () {

                $elem.addClass('fadeOut');

            });

        },

        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('fadeOut');

                }, 20);

            });


        },

        hide: function ($elem) {

            hide($elem, function () {

                $elem.off(transition.end).one(transition.end, function () {

                    $elem.hide();

                    $elem.data('status', 'hidden').trigger('hidden');

                });

                $elem.addClass('fadeOut');

            });

        }

    },

    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');

                }, 20);

            });


        },

        hide: function ($elem) {

            hide($elem, function () {

                $elem.off(transition.end).one(transition.end, function () {

                    $elem.hide();

                    $elem.data('status', 'hidden').trigger('hidden');

                });

                $elem.addClass('slideUpDownCollapse');

            });

        }

    },

    slideLeftRight: {

        show: function () {


        },

        hide: function () {


        }

    },

    fadeSlideUpDown: {

        show: function () {


        },

        hide: function () {


        }

    },

    fadeSlideLeftRight: {

        show: function () {


        },

        hide: function () {


        }

    }

};

var js = {

    fade: {

        show: function () {


        },

        hide: function () {


        }

    },

    slideUpDown: {

        show: function () {


        },

        hide: function () {


        }

    },

    slideLeftRight: {

        show: function () {


        },

        hide: function () {


        }

    },

    fadeSlideUpDown: {

        show: function () {


        },

        hide: function () {


        }

    },

    fadeSlideLeftRight: {

        show: function () {


        },

        hide: function () {


        }

    }

};

(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

    };

})();


提问者 Aurora_Meteor 2020-04-12 20:01:42

我刚刚在Microsoft IE里试了一下,效果还是实现了,是版本不对还是为什么呢....

应该是在这里改变浏览器版本的吧?http://img1.sycdn.imooc.com//climg/5e930322097b104e09450223.jpg

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师