老师,我按视频里敲得代码,咋运行不出来啊
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<style>
.btnall{
width:604px;
height:100px;
margin:0 auto;}
.btn{
width:300px;
height:100px;
float:left;
background-color:green;
border:1px solid black;
}
#box{
width:602px;
height:300px;
background-color:red;
position:relative;
left:50%;
margin-left:-301px;
display:none;
}
.transition{
transition:all 1s;
}
.fadeout{
visibility:hidden;
opacity:0;
}
.slideUpDown{
height:0 !important;}
</style>
<body>
<div class="btnall">
<button class="btn" id="btn1"></button>
<button class="btn" id="btn2"></button>
</div>
<div class="" id="box"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.0/jquery.js"></script>
<script src=../js/transition.js></script>
<script src=../js/showhide.js></script>
<script>
var box=$('#box');
/* var showHide=window.mt.showHide(box,{
css3:true,
animation:'fade'
});*/
box.showHide({
css3:true,
animation:'fade'
})
$('#btn1').on('click',function(){
//showHide.show(box);
box.showHide('show');
});
$('#btn2').on('click',function(){
//showHide.hide(box);
box.showHide('hide');
});
</script>
</body>
</html>
showhide.js
var transition = window.mt.transition;
(function(){
function init(e,hiddenback){
if(e.is(':hidden')){
e.data('status','hidden');
if(typeof hiddenback==='function'){hiddenback();}
}else{
e.data('status','shown');
}
}
function show(e,callback){
if(e.data('status')==='show')return;
if(e.data('status')==='shown')return;
e.data('status','show').trigger('show');
callback();
}
function hide(e,callback){
if(e.data('status')==='hide')return;
if(e.data('status')==='hidden')return;
e.data('status','hide').trigger('hide');
callback();
}
var silent={
init:function(){},
show:function(e){
show(e,function(){
e.show();
e.data('status','shown').trigger('shown');
})
},
hide:function(e){
hide(e,function(){
e.hide();
e.data('status','hidden').trigger('hidden');
})
}
};
var css3={
fade:{
init:function(e){
css3._init(e,'fadeout');
},
show:function(e){
css3._show(e,'fadeout');
},
hide:function(e){
css3._hide(e,'fadeout');
}
},
slideUpDown:{
init:function(e){
css3._init(e,'slideUpDown');
},
show:function(e){
css3._show(e,'slideUpDown');
},
hide:function(e){
css3._hide(e,'slideUpDown');
}
},
slideLeftRight:{
show:function(){
},
hide:function(){
}
},
fadeSlideUpDown:{
show:function(){
},
hide:function(){
}
},
fadeSlideLeftRight:{
show:function(){
},
hide:function(){
}
}
};
css3._init=function(e,className){
e.addClass('transition');
init(e,function(){
e.addClass(className);
});
};
css3._show=function(e,className){
show(e,function(){
e.off('transitionend').one('transitionend',function(){
e.data('status','shown').trigger('shown');
})
e.show();
setTimeout(function(){
e.removeClass(className);},30);
});
};
css3._hide=function(e,className){
hide(e,function(){
e.off('transitionend').one('transitionend',function(){
e.data('status','hidden').trigger('hidden');
e.hide();
})
setTimeout(function(){
e.addClass(className);},30);
});
};
var js={
fade:{
init:function(e){
js._init(e);
},
show:function(e){
js._show(e,'fadeIn')
},
hide:function(e){
js._hide(e,'fadeOut')
}
},
slideUpDown:{
init:function(e){
js._init(e);
},
show:function(e){
js._show(e,'slideDown');
},
hide:function(e){
js._hide(e,'slideUp');
}
},
slideLeftRight:{
init:function(e){
js._LRinit(e,{
'width':0,
'padding-left':0,
'padding-right':0
});
},
show:function(e){
js._LRshow(e);
},
hide:function(e){
js._LRhide(e,{
'width':0,
'padding-left':0,
'padding-right':0
});
}
},
fadeslideUpDown:{
init:function(e){
js._LRinit(e,{
'opacity':0,
'height':0,
'padding-top':0,
'padding-bottom':0
});
},
show:function(e){
js._LRshow(e);
},
hide:function(e){
js._LRhide(e,{
'opacity':0,
'height':0,
'padding-top':0,
'padding-bottom':0
});
}
},
fadeslideLeftRight:{
init:function(e){
js._LRinit(e,{
'opacity':0,
'width':0,
'padding-left':0,
'padding-right':0
});
},
show:function(e){
js._LRshow(e);
},
hide:function(e){
js._LRhide(e,{
'opacity':0,
'width':0,
'padding-left':0,
'padding-right':0
});
}
}
}
js._init=function(e,hiddenCallback){
e.removeClass('transition');
init(e,hiddenCallback);
};
js._show=function(e,mode){
show(e,function(){
e.stop()[mode](function(){
e.data('status','shown').trigger('shown');
});
});
}
js._hide=function(e,mode){
hide(e,function(){
e.stop()[mode](function(){
e.data('status','hidden').trigger('hidden');
});
});
}
js._LRinit=function(e,options){
var styles={};
for(var p in options){
styles[p]=e.css(p);
}
e.data['styles']=styles;
init(e,function(){
e.removeClass('transition');
js._init(e,function(){
e.css(options);
});
});
}
js._LRshow=function(e){
show(e,function(){
var styles=e.data['styles'];
e.show();
e.stop().animate(styles,function(){
e.data('status','shown').trigger('shown');
});
});
}
js._LRhide=function(e,options){
hide(e,function(){
e.stop().animate(options,function(){
e.data('status','hidden').trigger('hidden');
e.hide();
});
});
}
var defaults={
css3:false,
js:false,
animation:'fade'
}
function showHide(e,options){
var mode=null;
if(options.css3&&transition.isSupport){
mode=css3[options.animation]||css3[defaults.animation];
css3[options.animation].init(e);
return{
show:css3[options.animation].show,
hide:css3[options.animation].hide
};
}else if(options.js){
mode=js[options.animation]||css3[defaults.animation];
}else{
mode=silent;
}
mode.init(e);
return{
show:$.proxy(mode.show,this,e),
hide:$.proxy(mode.show,this,e)
}
}
$.fn.extend({
showHide:function(option){
return this.each(function(){
var $this=$(this),
options=$.extend({},defaults,typeof option===('object')&&option)
mode=$this.data('showHide');
if(!mode){
$this.data('showHide',mode=showHide($this,options));
}
if(typeof mode[option]==='function'){
mode[option]();
}
})
}
})
window.mt=window.mt||{};
window.mt.showHide=showHide;
})(jQuery)
transition.js
(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
};
})();
正在回答
同学你好,这里测试首先会报错,无法显示。还需要修改如下:

祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星