javascript - 单击时图像不起作用

标签 javascript jquery html css

当您单击屏幕顶部的导航项时,会弹出一个带有巨大“x”图像的空白 div,单击该图像时,x 图像会关闭空白 div 和其他所有内容。对于“工作、联系、新闻和法律”,单击时它不起作用,但对于“支持”,它工作得很好。我将代码并排放置以查看错误,复制支持代码并粘贴给其他人……基本上所有可以想象的东西都需要 1-2 小时。我发现一个小故障,当您先打开“支持”然后关闭它并打开另一个时,x 图像有效但我不知道为什么。这是我的html,其余代码将上传到可待因

演示: http://codepen.io/anon/pen/dvzgrY

<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="https://fonts.googleapis.com/css?family=Nunito:700" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Baloo" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
        <link rel="stylesheet" type="text/css" href="magicstyle.css">
        <body>
            <!-- Section for Jobs Popup -->
            <div id="job-popup">
                <div class="x-div1"><img class="x-icon1" id="fadeX1" src="Pictures/web%20x%20icon%20white.png"></div>
                <div id="job-content"> 
                    <h1 id="jobWords"></h1>
                </div>
            </div>
            <!-- Section for Contact Popup -->
            <div id="contact-popup">
                <div class="x-div2"><img class="x-icon2" id="fadeX2" src="Pictures/web%20x%20icon%20white.png"></div>
                <div id="contact-content">
                    <h1 id="contactWords"></h1>
                </div>
            </div>  
            <!-- Section for Press Popu -->
             <div id="press-popup">
                <div class="x-div3"><img class="x-icon3" id="fadeX3" src="Pictures/web%20x%20icon%20white.png"></div>
                <div id="press-content"> 
                    <h1 id="pressWords"></h1>  
                </div>
            </div>
            <div id="legal-popup">
                <div class="x-div4"><img class="x-icon4" id="fadeX4" src="Pictures/web%20x%20icon%20white.png"></div>
                <div id="legal-content">
                    <h1 id="legalWords"></h1>
                </div>             
            </div> 
            <div id="support-popup">
                <div class="x-div5"><img class="x-icon5" id="fadeX5" src="Pictures/web%20x%20icon%20white.png"></div>
                <div id="support-content">                   
                    <h1 id="supportWords"></h1>                    
                </div>             
            </div>         
            <div id="top-bar">
                <a class="burger-nav"></a>
                <div id="nav-menu">
                    <span id="job">Jobs</span>
                    <span id="contact">Contact</span>
                    <span id="press">Press</span>
                    <span id="legal">Legal</span>
                    <span id="support">Support</span>                       
                </div>
            </div>
            <div id="container">
                <div id="name-div">
                    <h1 id="name">Open Touch</h1>
                </div>
                <ul class="bubbles">              
                    <li id="firstCircle"></li>
                    <li id="secondCircle"></li>
                    <li id="thirdCircle"></li>
                    <li id="fourthCircle"></li>
                    <li id="fifthCircle"></li>
                    <li id="sixthCircle"></li>             
                </ul>
            </div>
        </body>
    </head>
</html>

任何帮助将不胜感激:D

最佳答案

问题是您的所有弹出容器(工作弹出窗口、联系人弹出窗口等)都绝对定位在具有相同 z-index 的相同位置。由于 support-popup 在您的 html 中位于最后,因此它隐藏了其下方的所有弹出容器。您实际上从未点击过其他 x 图标(仅在顶部支持图标上),因此不会触发点击处理程序。

为了快速修复,您可以在导航点击处理程序中更新 z-index。例如:

$("#job").click(function() {
    $("#job-popup").fadeIn(300);
    $("#job-popup").css({'z-index': 15});
    $("#job-content").fadeIn(300); 
    $("#jobWords").fadeIn(300); 
    $(".x-icon1").fadeIn(300); 
    $("#name").fadeOut(300); 
    $("#container").css("-webkit-filter", "blur(10px)");
}

然后把它移回这里

 $(".x-icon1").click(function() {
     $("#job-popup").fadeOut(); 
     $("#job-popup").css({'z-index': 10});
     $("#job-content").fadeOut(); 
     $("#jobWords").fadeOut(); 
     $(".x-icon1").fadeOut();  
     $("#name").fadeIn();  
     $("#container").css("-webkit-filter", "blur(0px)");
}

然后为您所有的点击处理程序复制它。

但是您还应该考虑重构您的 html/css,因为结构不正确(例如,head 中的 body),而且很多 css 可能是不必要的。

关于javascript - 单击时图像不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42800063/

相关文章:

javascript - 从 javascript litteral 获取第一个对象

javascript - 使用 moment.js 进行日期验证不会在给出无效日期时给出错误

JQuery子选择器问题

html - IE10 内容在第二次悬停时消失

javascript - React 组件在按钮 onClick 之后不显示在移动设备上,但在桌面上工作得很好

javascript - 如何在不进行 ajax 调用的情况下填充 jquery 数据表中的数据?

javascript - 使用 jquery 删除 html 中的样式标签

javascript - 以文本作为掩码的 CSS div

html - 如何使用CSS 3和html5制作响应式固定 header

javascript - NuxtJS页面标题不变