多个Div淡入/淡出

时间:2012-09-12 15:59:23

标签: javascript jquery html

我有三个div,每个div包含多个图像。

页面上还有三个按钮。

我想创建一个效果,点击每个按钮会淡化相应的div并淡出其他两个div。

我曾尝试按照之前发布的类似效果的代码,但一直没有成功,我希望得到一些比我更有技巧的人的帮助!谢谢,罗斯

HTML如下;

 <div id="GROUP-Join">
    <img class="CentreBox" src="images/CentreBox.png" 
        width="487" height="173">
    <img id="TitleOne" src="images/TitleOne.png" 
        width="339" height="19">
    <img id="TitleTwo" src="images/TitleTwo.png" 
        width="143" height="14">
    <body onLoad="focus();signup.email.focus()"></body>
    <form method="post" name="signup" action="signup.php">
        <input id="EmailAddress" type="text" name="email" 
            placeholder="e-mail" style="color: #000000; 
            font-family: 'Arial'; font-size: 20px; background-color:transparent;     
            border:hidden;" size="24" maxlength="49">
        <input id="Go" type="image" name="submit" src="images/Go.png" 
            alt="submit" value="GO">   
    </form>
 </div>
 <div id="GROUP-About">
    <img class="CentreBox" src="images/CentreBOX.png" 
        width="487" height="173">
    <img id="AboutHead" src="images/AboutHead.png" 
        width="132" height="19">
    <img id="JumpAround" src="images/JumpAround.png" 
        width="379" height="33">
    <img id="Win" src="images/Win.png" 
        width="254" height="15">    
 </div>
 <div id="GROUP-Contact">
    <img class="CentreBox" src="images/CentreBOX.png" 
        width="487" height="173">
    <img id="ContactHeading" src="images/ContactHead.png" 
        width="124" height="19">
    <img id="Email" src="images/e-mail.png" 
        width="24" height="17">
    <img id="Twitter" src="images/tw.png" 
        width="24" height="20">
    <img id="fb" src="images/fb.png" 
        width="10" height="21">    
 </div>
 <button id="button1">Join</button>
 <button id="button2">About</button>
 <button id="button3">Contact</button>  

3 个答案:

答案 0 :(得分:1)

我不确定这是你的意思,但是这会在每个相应的div中淡出并淡出其他两个。

<script type="text/javascript">
    $(document).ready(function () {
        $('#btn1').click(function () {
            $('#div1').fadeIn();
            $('#div2').fadeOut();
            $('#div3').fadeOut();
        });
        $('#btn2').click(function () {
            $('#div1').fadeOut();
            $('#div2').fadeIn();
            $('#div3').fadeOut();
        });
        $('#btn3').click(function () {
            $('#div1').fadeOut();
            $('#div2').fadeOut();
            $('#div3').fadeIn();
        });
    });
</script>

标记:

<div>
    <div id="div1">
        hello
    </div>
    <div id="div2">
        hello 2
    </div>
    <div id="div3">
        hello 3
    </div>
    <div>
        <input type="button" id="btn1" />
        <input type="button" id="btn2" />
        <input type="button" id="btn3" />
    </div>
</div>

jquery fadeInfadeOut函数也有回调函数,所以你也可以这样做:

$('#div2').fadeOut(100, 
    function() { $('#div3').fadeOut(100, 
            function() { $('#div1').fadeIn(100); 
        });
    });

答案 1 :(得分:0)

选中此FIDDLE

此脚本应该为您完成工作

$(function(){

    $('button').on('click', function() {
        var btnText = $(this).text();

        $('div').fadeOut('slow');
        $('#GROUP-'+btnText).fadeIn('slow');
    });
});​

答案 2 :(得分:0)

当您在jQuery(例如fadeIn)中运行效果时,您可以提供回调,以便在效果完成后执行操作。例如,在您的情况下:

$('#button1').click(function() {
  $('#GROUP-Contact').fadeOut(500);
  $('#GROUP-About').fadeOut(500, function() {
    $('#GROUP-Join').fadeIn(500);
  });
});

这是我最好的猜测,你没有看到任何JS代码。