Javascript 在三个隐藏的 div 之间切换

标签 javascript jquery css toggle hidden

大家好, 新手在这里,所以请原谅我的方法和细节。我会很感激一些帮助!

我正在制作一个包含三个部分的图片库,一次只能显示其中一个部分。在页面的顶部有三个链接,我想切换三个部分中的一个以显示,同时隐藏另外两个。

我写的代码很差,只能从链接 1 到链接 2 再到链接 3,但不能反向或从链接 1 到 3、3 到 1 等。

感谢您的帮助和建议!

HTML:

<div id="content">
    <h2>PHOTOS</h2>
    <hr />
    <p align="left"><a id="show_promo">PROMO</a> <a id="show_studio">STUDIO</a> <a id="show_live">LIVE</a></p>
    <div id="promo">
        <p align="center">PROMO</p>
        <p align="center">
            <img src="#" />
            <img src="#" />
            <img src="#" />
            <img src="#" />
        </p>
        <p align="center">
            <img src="#" />
            <img src="#" />
            <img src="#" />
            <img src="#" />
        </p>
    </div>
    <div id="studio">
        <p align="center">STUDIO</p>
        <p align="center">
            <img src="#" />
            <img src="#" />
            <img src="#" />
            <img src="#" />
        </p>
        <p align="center">
            <img src="#" />
            <img src="#" />
            <img src="#" />
            <img src="#" />
        </p>
    </div>
    <div id="live">
        <p align="center">LIVE</p>
        <p align="center">
            <img src="#" />
            <img src="#" />
            <img src="#" />
            <img src="#" />
        </p>
        <p align="center">
            <img src="#" />
            <img src="#" />
            <img src="#" />
            <img src="#" />
        </p>
    </div>
</div>

Javascript:

$('#studio').css('display', 'none');
    $('#live').css('display', 'none');
    $('#show_studio').click(function(){
        $('#promo').fadeOut(600, function(){
            $('#studio').fadeIn(600);
        });
    });
    $('#show_live').click(function(){
        $('#studio').fadeOut(600, function(){
            $('#live').fadeIn(600);
        });
    });
    $('#show_promo').click(function(){
        $('#live').fadeOut(600, function(){
            $('#promo').fadeIn(600);
        });
    });

最佳答案

这里的问题是您正在对需要淡出的元素进行硬编码。最好动态选择。

首先,您应该向您的#show- 链接和您的div 添加一个类。或许 showlinksection 会是一个很好的类名。然后您可以使用 jQuery 的 :visible selector找到当前可见的 div

$('a.showlink').click(function(){
    var toShow = this.id.substr(5);
    $('div.section:visible').fadeOut(600, function(){
        $('#' + toShow).fadeIn(600);
    });
});

这应该适用于所有链接和 div

关于Javascript 在三个隐藏的 div 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4642221/

相关文章:

javascript - 如何在 for 循环的每次迭代中将值从 HTML 标记传递到 Vue 的数据对象

Javascript:object.name 和对象 ["name"之间的区别]?

javascript - wuic javascript优化版本号计算

php - 显示来自 php json_encode 的 json 数据?

html - Ionic 2 - 背景图像 sanitizer 和 CSS 属性

javascript - 如何在不刷新页面的情况下通过乘以数量来更新成本

jquery - 如何设置body的上边距?

javascript - 翻译后将 html 元素返回到其原始位置

html - Angular 2 CLI 元素中的 Bootstrap 4 按钮间距

javascript - 如何从父 div 中剪切半圆 div 以显示背景