老师,绑定了transitionend事件,它是等过渡完成时会自动执行吗,老师我这下面代码有没漏了些什么,好像没动画效果

老师,绑定了transitionend事件,它是等过渡完成时会自动执行吗,老师我这下面代码有没漏了些什么,好像没动画效果

<!DOCTYPE html>

<html>

<head>

<title>淡入淡出1</title>

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

<style type="text/css">

body{

width: 400px;

margin: 50px auto;

}

.btn{width: 50%;float: left;height: 50px;}

.box{height: 200px;width: 100%;background-color: #f00;}

.fadeOut{visibility: hidden;opacity: 0;}

</style>

</head>

<body>

<button class="btn" id="showBox">显示</button>

<button class="btn" id="hideBox">隐藏</button>

<div class="box fadeOut"></div>

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

<script>

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

var css3 = {

fade:{

show:function($elem){

$elem.trigger('show');

$elem.on('transitionend',function(){

$elem.trigger('shown');

})

    $elem.show();

    setTimeout(function(){

    $elem.removeClass('fadeOut');

    },20)

},

hide:function($elem){

$elem.trigger('hide');

$elem.on('transitionend',function(){

$elem.hide();

$elem.trigger('hidden');

})

$elem.addClass('fadeOut');

}

},

}

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

console.log(event.type);

})

$('#showBox').on('click',function(){

css3.fade.show($box);

})

$('#hideBox').on('click',function(){

css3.fade.hide($box);

})

</script>

</body>

</html>


正在回答

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

1回答

同学你好,是的,transitionend事件等过渡完毕就会执行。

代码中没有过渡效果是因为没有添加过渡属性transition,并且.box默认应该是隐藏的,如下修改:

http://img1.sycdn.imooc.com//climg/600796350927d77f04530190.jpg

祝学习愉快~

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

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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