-1

我有三个 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>  
4

3 回答 3

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>

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

$('#div2').fadeOut(100, 
    function() { $('#div3').fadeOut(100, 
            function() { $('#div1').fadeIn(100); 
        });
    });
于 2012-09-12T16:09:05.430 回答
0

检查这个小提琴

该脚本应该为您完成工作

$(function(){

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

        $('div').fadeOut('slow');
        $('#GROUP-'+btnText).fadeIn('slow');
    });
});​
于 2012-09-12T16:07:43.940 回答
0

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

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

这是我在没有看到任何 JS 代码的情况下对您正在寻找的内容的最佳猜测。

于 2012-09-12T16:08:15.973 回答