淡入/淡出不适用于附加div

时间:2016-05-09 21:13:46

标签: javascript jquery html css

尽我所能并做了一些研究,我仍然无法弄明白。 我的目标是为我正在进行的最终考试网站的一部分创建一个简单的编码灯箱。

请帮我解决这个烦人的问题,非常感谢!

$(document).ready(function () {
	
	$('button').click(function() {
		
		$('body').append(' <div id="lb-shadow"><p id="lb-x">[ x ]</p></div> ');
		$('body').append(' <div id="lb-container"></div> ');
		$('#lb-shadow').fadeIn(6000	);
		$('#lb-container').fadeIn(6000);
		
		$('#lb-shadow').click(function(){
			$('#lb-container').fadeOut(6000);
			$('#lb-shadow').fadeOut(6000);
			
			$('#lb-container').detach();
			$('#lb-shadow').detach();
		});
	});
	
	
	
	
});
#lb-btn{
	position:absolute;
	outline:0;
	border:0;
	padding:5px 10px;
	cursor:pointer;
	background-color:black;
}
#lb-btn p{
    padding:5px;
	color:#ccc;
	border:1px solid white;
}


#lb-shadow{
	position:absolute;
	left:0;
	right:0;
	height:100%;
	width:100%;
	background-color:rgba(0, 0, 0, 0.7);
}
#lb-x{
	color:#ccc;
	text-transform:uppercase;
	float:right;
	margin:15px;
	cursor:pointer;
	transition: ease .3s;
}
#lb-x:hover{
	color:white;
}
#lb-container{
	position:absolute;
	height:400px;
	width:600px;
	left:calc(50% - 300px);
	top:calc(50% - 200px);
	background-color:white;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	
    <title>Min hemsida</title>
	
    <link rel="stylesheet" type="text/css" href="css/cindex.css">
    
	<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet" type="text/css">
	<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
	
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
	<script src="js/cindex.js"></script>
</head>
<body>


<button id="lb-btn"><p> Login / Register </p></button>







</body>
</html>

2 个答案:

答案 0 :(得分:0)

如果问题是单击处理程序,请尝试全局附加事件侦听器,即使在侦听器之后创建元素,这种方式也应该有效。 (否则,您问题的重复评论应解决问题)

$(document).ready(function () {

    $(document).on('click', '#lb-shadow', function(){
        $('#lb-container').fadeOut(6000);
        $('#lb-shadow').fadeOut(6000);
        $('#lb-container').detach();
        $('#lb-shadow').detach();
    });

    $('button').click(function() {
        $('body').append('<div id="lb-shadow"><p id="lb-x">[ x ]</p></div>');
        $('body').append('<div id="lb-container"></div>');
        $('#lb-shadow').fadeIn(6000);
        $('#lb-container').fadeIn(6000);
    });
});

答案 1 :(得分:0)

我解决了!

我刚刚在lb-container和lb-shadow上添加了display:block。很明显,淡入淡出效果会自动触发它,我也确实减少了我的js代码。

&#13;
&#13;
$(document).ready(function () {
	
	$('button').click(function() {
		
		$('body').append(' <div id="lb-shadow"><p id="lb-x">[ x ]</p></div> ');
		$('body').append(' <div id="lb-container"></div> ');
		$('#lb-shadow').fadeIn();
		$('#lb-container').fadeIn();
		
		$('#lb-shadow').click(function(){
			$('#lb-container').fadeOut();
			$('#lb-shadow').fadeOut();
		});
	});		
});
&#13;
&#13;
&#13;