jQuery变形按钮概念-fadeIn()并不总是有效
jQuery morphing button concept - fadeIn() not always working
Fiddle:https://jsfiddle.net/h405kbaa/
有时button.fadeIn(300);
(第78行和第171行)似乎不起作用。
通常,如果按下第一个按钮,关闭它,再按下第二个按钮,再关闭它,再次打开第一个按钮然后关闭它,按钮将不会褪色,而是用display:none;
隐藏。为什么会发生这种情况?
jQuery:
$(document).ready(function() {
// fix span and display on button
var morphObject = {
button: $('button.morphButton'),
container: $('div.morphContainer'),
overlay: $('div.overlay'),
content: $('h1.content, p.content'),
endPosition: {
top: 100,
left: '50%',
width: 600,
height: 400,
marginLeft: -300
},
init: function() {
var mO = morphObject,
button = mO.button;
button.on('click', function() {
button.fadeOut(200);
setTimeout(mO.containerMove, 200);
});
},
containerMove: function() {
var mO = morphObject,
content = mO.content,
overlay = mO.overlay,
container = mO.container,
span = $('span.close');
overlay.fadeIn();
container.addClass('active');
container.animate(mO.endPosition, 400, function() {
content.fadeIn();
span.fadeIn();
mO.close();
});
},
close: function() {
var mO = morphObject,
container = mO.container,
overlay = mO.overlay,
content = mO.content;
if ( container.find('span.close').length ) return;
$('<span class="close">X</span>').appendTo(container);
var span = $('span.close');
span.on('click', function() {
content.fadeOut();
span.fadeOut();
overlay.fadeOut();
setTimeout(mO.animateBack, 200);
});
},
animateBack: function() {
var mO = morphObject,
container = mO.container;
button = mO.button;
container.animate(mO.startPosition, 400, function() {
container.removeClass('active');
button.fadeIn(300);
});
}
}
// End of morphObject One
var container = morphObject.container;
morphObject.startPosition = {
top: container.css('top'),
left: container.css('left'),
width: container.css('width'),
height: container.css('height'),
marginLeft: container.css('margin-left')
};
var morphObjectTwo = {
button: $('button.newButton'),
container: $('div.newContainer'),
overlay: $('div.overlay'),
content: $('h1.newContent, p.newContent'),
endPosition: {
top: 100,
left: '50%',
width: 600,
height: 400,
marginLeft: -300
},
init: function() {
var mO = morphObjectTwo,
button = mO.button;
button.on('click', function() {
button.fadeOut(200);
setTimeout(mO.containerMove, 200);
});
},
containerMove: function() {
var mO = morphObjectTwo,
content = mO.content,
overlay = mO.overlay,
container = mO.container,
span = $('span.close');
overlay.fadeIn();
container.addClass('active');
container.animate(mO.endPosition, 400, function() {
content.fadeIn();
span.fadeIn();
mO.close();
});
},
close: function() {
var mO = morphObjectTwo,
container = mO.container,
overlay = mO.overlay,
content = mO.content;
if ( container.find('span.close').length ) return;
$('<span class="close">X</span>').appendTo(container);
var span = $('span.close');
span.on('click', function() {
content.fadeOut();
span.fadeOut();
overlay.fadeOut();
setTimeout(mO.animateBack, 200);
});
},
animateBack: function() {
var mO = morphObjectTwo,
container = mO.container;
button = mO.button;
container.animate(mO.startPosition, 400, function() {
container.removeClass('active');
button.fadeIn(300);
});
}
}
var container = morphObjectTwo.container;
morphObjectTwo.startPosition = {
top: container.css('top'),
left: container.css('left'),
width: container.css('width'),
height: container.css('height'),
marginLeft: container.css('margin-left')
};
morphObject.init();
morphObjectTwo.init();
});
请注意,jQuery包含两个相同的对象,只是不同按钮、容器等的属性不同。这意味着您需要更改这两个对象的代码。第一个对象在行85上结束,第二个对象在行176上结束。两个对象都在底部调用。
只需从js脚本中删除这一行
button.fadeOut(200);
想好了。。。
没有正确定义变量:
animateBack: function() {
var mO = morphObject,
container = mO.container;
button = mO.button;
应为:
animateBack: function() {
var mO = morphObject,
container = mO.container,
button = mO.button;
(逗号)。
相关文章:
- Javascript/Ajax:通过点击按钮检查有效的电子邮件和电话号码
- 为什么这个按钮在IE中有效,但在Firefox中无效
- 当我的所有 Ng-from 都有效时启用一个按钮
- jQuery变形按钮概念-fadeIn()并不总是有效
- 只有第一个按钮在带有 Jquery 的 forEach 标签中有效
- Javascript - 当所有输入都有效时启用提交按钮
- 如何使按钮CSS更改只有IF表单字段有效
- 如果验证错误是有效的JAVASCRIPT,则启用按钮
- 按钮(禁用=错误)条件;在某些情况下有效,而在其他情况下无效
- AngularJS:当输入有效的电子邮件地址时,启用提交按钮
- ExtJs 4-按钮's hrefTarget属性没有't有效
- 按钮上的if-else语句超时有效,但无法返回到原始状态
- 重置按钮在表单提交之前有效,但在提交表单后不起作用
- 文档就绪按钮.单击仅在控制台中有效
- 为什么提交按钮在 extjs 中仍然有效,即使使用 vtype 的电子邮件验证失败
- 表头上的切换按钮仅在切换 2 次后才有效
- 无法在 jquery .append() 方法中的按钮中添加类或 id 以制作有效的按钮
- 按钮单击Javascript函数失败,但函数有效
- Soundmanager 2:从Soundcloud流式传输时,除“播放”外,所有按钮都有效
- Ajax 构建关系按钮有效,用于显示引导模式的第二个按钮有效,但两者不能协同工作