我正在开展一个小项目,我正在制作一个带有单选按钮的内容节目,就像一个幻灯片库,但我想要做的是一个容器内部有很多不透明度的大容器: 1;所有这些重叠的3个容器都具有相同的特性,所以当有人在单选按钮中给出一个clic时,容器的不透明度为1;会得到不透明度:0;容器的重叠容器具有不透明度:1;将是可见的。
我得到的主要问题是当我在单选按钮中更改内容时,这个(内容)在我重新加载页面之前不会出现,有人可以告诉我为什么会这样吗?以及如何解决它?
谢谢!
$(document).ready(function(){
$("#op1").prop('checked',true);
$("#op2").prop('checked',true);
$("#op3").prop('checked',true);
$("#op4").prop('checked',true);
//$("#x").prop('checked',false);
if ($("#op1").is(':checked')) {
if ($('#cont1').hasClass('contenedor-fotos-opacity'))
{
$('#cont1').removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos1');
}
$('.contenedor-fotos2').removeClass('contenedor-fotos2').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos3').removeClass('contenedor-fotos3').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos4').removeClass('contenedor-fotos4').addClass('contenedor-fotos-opacity');
}
if ($("#op2").is(':checked')) {
if ($('#cont2').hasClass('contenedor-fotos-opacity'))
{
$('#cont2').removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos2');
}
$('.contenedor-fotos1').removeClass('contenedor-fotos1').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos3').removeClass('contenedor-fotos3').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos4').removeClass('contenedor-fotos4').addClass('contenedor-fotos-opacity');
}
if ($("#op3").is(':checked')) {
if ($('#cont3').hasClass('contenedor-fotos-opacity'))
{
$('#cont3').removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos3');
}
$('.contenedor-fotos1').removeClass('contenedor-fotos1').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos2').removeClass('contenedor-fotos2').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos4').removeClass('contenedor-fotos4').addClass('contenedor-fotos-opacity');
}
if ($("#op4").is(':checked')) {
if ($('#cont4').hasClass('contenedor-fotos-opacity'))
{
$('#cont4').removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos4');
}
$('.contenedor-fotos1').removeClass('contenedor-fotos1').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos2').removeClass('contenedor-fotos2').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos3').removeClass('contenedor-fotos3').addClass('contenedor-fotos-opacity');
}
});
#contenedor-portafolio {
position: relative;
width: 100%;
background: #222;
}
.fotos-portolio {
width: 300px;
height: 300px;
display: inline-block;
margin-left: 15px;
margin-top: 15px;
overflow: hidden;
background: #444;
}
.contenedor-fotos1 {
width: 90%;
position: absolute;
margin-left: 5%;
background: red;
z-index: 10;
}
.contenedor-fotos-opacity {
width: 90%;
position: absolute;
margin-left: 5%;
opacity:0;
z-index: 10;
}
.contenedor-fotos2 {
width: 90%;
position: absolute;
margin-left: 5%;
background: green;
z-index: 11;
}
.contenedor-fotos3 {
width: 90%;
position: absolute;
margin-left: 5%;
background: blue;
z-index: 12;
}
.contenedor-fotos4 {
width: 90%;
position: absolute;
margin-left: 5%;
background: yellow;
z-index: 13;
}
<!DOCTYPE html>
<html>
<head>
<title>prueba cont-slider</title>
<meta charset="utf-8"/>
<link rel="stylesheet" type="text/css" href="css/content-slider.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="js/content-slider.js"></script>
</head>
<body style="width:100%; position:absolute; top: 0px; left: -8px;">
<div id="contenedor-portafolio">
<form>
<input type="radio" name="opacitylayer" id="op1"/>
<label for="op1">DISEÑO WEB</label>
<input type="radio" name="opacitylayer" id="op2"/>
<label for="op2">DISEÑO GRÁFICO</label>
<input type="radio" name="opacitylayer" id="op3"/>
<label for="op3">DISEÑO 3D</label>
<input type="radio" name="opacitylayer" id="op4"/>
<label for="op4">FOTOGRAFÍA</label>
</form>
<div id="cont1" class="contenedor-fotos1">
<center>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
</center>
</div>
<div id="cont2" class="contenedor-fotos2">
<center>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
</center>
</div>
<div id="cont3" class="contenedor-fotos3">
<center>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
</center>
</div>
<div id="cont4" class="contenedor-fotos4">
<center>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
</center>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
您需要使用更改处理程序,因为您希望在用户更改无线电元素的已检查状态时运行脚本
$(document).ready(function(){
$("#op2").prop('checked',true);
$("#op1, #op2, #op3, #op4").on('change', function(){
if ($("#op1").is(':checked')) {
if ($('#cont1').hasClass('contenedor-fotos-opacity'))
{
$('#cont1').removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos1');
}
$('.contenedor-fotos2').removeClass('contenedor-fotos2').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos3').removeClass('contenedor-fotos3').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos4').removeClass('contenedor-fotos4').addClass('contenedor-fotos-opacity');
}
if ($("#op2").is(':checked')) {
if ($('#cont2').hasClass('contenedor-fotos-opacity'))
{
$('#cont2').removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos2');
}
$('.contenedor-fotos1').removeClass('contenedor-fotos1').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos3').removeClass('contenedor-fotos3').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos4').removeClass('contenedor-fotos4').addClass('contenedor-fotos-opacity');
}
if ($("#op3").is(':checked')) {
if ($('#cont3').hasClass('contenedor-fotos-opacity'))
{
$('#cont3').removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos3');
}
$('.contenedor-fotos1').removeClass('contenedor-fotos1').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos2').removeClass('contenedor-fotos2').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos4').removeClass('contenedor-fotos4').addClass('contenedor-fotos-opacity');
}
if ($("#op4").is(':checked')) {
if ($('#cont4').hasClass('contenedor-fotos-opacity'))
{
$('#cont4').removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos4');
}
$('.contenedor-fotos1').removeClass('contenedor-fotos1').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos2').removeClass('contenedor-fotos2').addClass('contenedor-fotos-opacity');
$('.contenedor-fotos3').removeClass('contenedor-fotos3').addClass('contenedor-fotos-opacity');
}
}).change()
});
#contenedor-portafolio {
position: relative;
width: 100%;
background: #222;
}
.fotos-portolio {
width: 300px;
height: 300px;
display: inline-block;
margin-left: 15px;
margin-top: 15px;
overflow: hidden;
background: #444;
}
.contenedor-fotos1 {
width: 90%;
position: absolute;
margin-left: 5%;
background: red;
z-index: 10;
}
.contenedor-fotos-opacity {
width: 90%;
position: absolute;
margin-left: 5%;
opacity:0;
z-index: 10;
}
.contenedor-fotos2 {
width: 90%;
position: absolute;
margin-left: 5%;
background: green;
z-index: 11;
}
.contenedor-fotos3 {
width: 90%;
position: absolute;
margin-left: 5%;
background: blue;
z-index: 12;
}
.contenedor-fotos4 {
width: 90%;
position: absolute;
margin-left: 5%;
background: yellow;
z-index: 13;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<title>prueba cont-slider</title>
<meta charset="utf-8"/>
<link rel="stylesheet" type="text/css" href="css/content-slider.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="js/content-slider.js"></script>
</head>
<body style="width:100%; position:absolute; top: 0px; left: -8px;">
<div id="contenedor-portafolio">
<form>
<input type="radio" name="opacitylayer" id="op1"/>
<label for="op1">DISEÑO WEB</label>
<input type="radio" name="opacitylayer" id="op2"/>
<label for="op2">DISEÑO GRÁFICO</label>
<input type="radio" name="opacitylayer" id="op3"/>
<label for="op3">DISEÑO 3D</label>
<input type="radio" name="opacitylayer" id="op4"/>
<label for="op4">FOTOGRAFÍA</label>
</form>
<div id="cont1" class="contenedor-fotos1">
<center>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
</center>
</div>
<div id="cont2" class="contenedor-fotos2">
<center>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
</center>
</div>
<div id="cont3" class="contenedor-fotos3">
<center>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
</center>
</div>
<div id="cont4" class="contenedor-fotos4">
<center>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
<div class="fotos-portolio"></div>
</center>
</div>
</div>
</body>
</html>
您可以将其简化为
$(document).ready(function () {
$("#op2").prop('checked', true);
var $els = $('#cont1, #cont2, #cont3, #cont4');
$("#op1, #op2, #op3, #op4").on('change', function () {
var id = this.id.substring(2), $el = $('#cont'+id);
if (this.checked) {
if ($el.hasClass('contenedor-fotos-opacity')) {
$el.removeClass('contenedor-fotos-opacity').addClass('contenedor-fotos'+id);
}
$els.not($el).each(function(){
$(this).removeClass('contenedor-fotos'+this.id.substring(5))
}).addClass('contenedor-fotos-opacity')
}
}).change()
});
演示:Fiddle