javascript - HTML 页面上带有图像(带有黑色透明覆盖的框)的 jQuery 弹出窗口

标签 javascript jquery html css

我正在创建一个网页,它将有一个带有图像的 jQuery 弹出窗口,该图像将在网站加载时自动出现。我希望弹出窗口创建一个黑色透明覆盖层,(链接:) like this .创建该弹出窗口更容易。但是我无法对图像执行此操作。我希望弹出窗口出现在距页面左边框 30% 的位置。图像和黑色叠加层应在悬停时消失,并在用户移动鼠标时重新出现。我该怎么办?

Html代码如下:

 <head>
    script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
 </head>
 <body>
    <a class="cha" data-popup-open="popup-imonelle" href="#"></a>
    <div class="cha-popup" data-popup="popup-imonelle">
       <div class="popup-pic">
          <img src="Images/imonelle.jpg"/>
          <a class="popup-hover" data-popup-close="popup-imonelle" href="#">x</a>
       </div>
    </div>
 </body>
 <footer>
    <script src="js/Sciptquery.js"></script>
 </footer>

还有 jQuery:

$(function() {
    //----- OPEN when page loads
    $(function(e)  {
        var targeted_popup_class = $('[cha-popup-close]').attr('cha-popup-close');
        $('[cha-popup="' + targeted_popup_class + '"]').fadeOut(350);
    });

    //----- CLOSE on hover
    $('[cha-popup-close]').on('hover', function(e)  {
        var targeted_popup_class = jQuery(this).attr('cha-popup-close');
        $('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);

        e.preventDefault();
    });
 });
 });

最后是 CSS 代码:

        .cha-popup {
            width:100%;
            height:100%;
            display:none;
            position:fixed;
            top:0px;
            left:0px;
            background:rgba(0,0,0,0.75);
                       }

        /* Inner */
        .popup-pic {
            max-width:845px;
            width:90%;
            padding:0px;
            position:absolute;
            top:50%;
            left:30%;
            -webkit-transform:translate(-50%, -50%);
            transform:translate(-50%, -50%);
            box-shadow:0px 2px 6px rgba(0,0,0,1);
            border-radius:3px;
            background:#fff;
        }

        /* Close on hover function */
        .popup-hover {
            transition:ease 0.25s all;
            -webkit-transform:translate(50%, -50%);
            transform:translate(50%, -50%);
        }
        }
    }

我已经修改了用于帖子所附图片弹出窗口的代码。但显然有些地方不对劲。

最佳答案

除了一些简单的语法问题,这里的主要问题是您的选择器。让我们来看看其中的一些......

    //[cha-popup-close]
    var targeted_popup_class = $('[cha-popup-close]').attr('cha-popup-close');

    //[cha-popup]
    $('[cha-popup="' + targeted_popup_class + '"]').fadeOut(350);

    //[data-popup]
    $('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);

[cha-popup-close] 等方括号内的选择器正在寻找 cha-popup-close 的属性。

如果您查看您的 HTML,您没有任何元素具有名为 cha-popupcha-popup-close 的属性,因此基本上没有您的选择器实际上是在选择任何东西。

[data-popup] 选择器是唯一能实际找到任何东西的选择器,因为 are 元素带有 data-popup属性。


使用正确的选择器,我相信你所追求的是这样的:

$(document).ready(function() {

    //Get popup to open and fade it in
    var targeted_popup_class = $('[data-popup-open]').data('popup-open');
    $('[data-popup="' + targeted_popup_class + '"]').fadeIn(350);

    //CLOSE on hover
    $('[data-popup-close]').on('mouseover', function(e) {

        //Get popup to close and hide it
        var targeted_popup_class = $(this).data("popup-close");
        $('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);

    });

});

Here's your example, fixed.

除了修复您的选择器之外,我还稍微整理了您的代码,修复了您放置的额外大括号,最显着的是更改了您的 .on("hover") (这不起作用)到 .on("mouseover")

关于javascript - HTML 页面上带有图像(带有黑色透明覆盖的框)的 jQuery 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41945534/

相关文章:

html - 水平显示 anchor 链接的背景图像

javascript - 如何在下拉列表中获取当前年份

javascript - 如何从数组中提取两列

javascript - 火狐网络扩展 : selectionText in contextMenus only returns 150 characters

javascript - 将表附加到另一个 div | JS 查询

c# - Dropzone.js:将图像上传到 ASP.NET 中的服务器

html - 无法在 IE 中输入文本

javascript - Visual Studio 2013 无法对 js 文件进行语法检查

javascript - 平滑滚动不是那么平滑

javascript合并两个函数以检查另一个元素的节点类型