【问题标题】:How to style magnific ajax pop-up如何设置华丽的 ajax 弹出窗口的样式
【发布时间】:2014-05-29 04:02:22
【问题描述】:

我正在尝试设置一个包含 uri 内容的宏伟弹出窗口的样式。内容只是一些文字。我不想使用 html 代码,因为弹出窗口是从按钮启动的。

我编写的代码有效,但样式很糟糕。如何在以下 JQuery 代码中添加样式类:

$.magnificPopup.open({
    items: {
        src: 'www.someWebsitecontentPage.com',
        type: 'ajax',
        mainClass: 'my-mfp-zoom-in',
        myClassOne: 'modal-content',
        callbacks: {
            // wrap the ajax request with a div that we've styled to look good
            parseAjax: function (mfpResponse) {
                mfpResponse.data = "<div class='modal-content'>" + mfpResponse.data + "</div>";
            },
            ajaxContentAdded: function () {
                return this.content;
            }
        }
    },
    closeBtnInside: true
});

【问题讨论】:

  • 你在问如何设置modal-content div 的样式?
  • 对不起,我应该更具体一点:我尝试使用 parseAjax 函数将 div 添加到类中,但它并没有像我预期的那样工作。所以我想知道如何在这个函数中向这个弹出窗口添加类。
  • 您是要修改 Magnific 的 CSS(应用于整个弹出窗口的样式),还是只修改您远程加载的内容?
  • 是的,样式应用于整个弹出窗口。我无法修改远程加载的内容。
  • 您在文档中看到了吗? dimsemenov.com/plugins/magnific-popup/… - 具体来说,它说“弹出窗口本身的样式应该与内联弹出窗口类型完全相同”?您基本上将 CSS 类添加到将触发弹出窗口的任何内容,然后将您的规则添加到其中。

标签: javascript jquery ajax magnific-popup


【解决方案1】:

我发现从主包装类 .mfp-content 开始构建 CSS 选择器是最简单的。从那里,您只需添加更多特异性。这是一个例子:

.mfp-content #page-content
{
    margin-top: 1em;
}

    .mfp-content #page-content h3
    {
        margin-top: 1em;
    }

这对我有用,因为我确切地知道我得到了什么标记,所以如果你的内容是可变的,你可能不得不使用类似的东西:

.mfp-content h3
{
    margin-top: 1em;
}

    .mfp-content p
    {
        margin-top: 1em;
    }

你也可以建立在你附加的 div 之上:

.mfp-content .modal-content
{
    margin: 1em;
}

    .mfp-content .modal-content h3
    {
        margin-bottom: 1em;
    }

【讨论】:

  • 我已经有了一些模态内容的样式属性。但是该类没有出现在元素上。 parseajax 函数中的 html 是否正确?
  • @LiluPatel 我会尝试这样的事情:mfpResponse.data = $(mfpResponse.data).wrap('&lt;div class="modal-content"&gt;&lt;/div&gt;'); - 在api.jquery.com/wrap引用API
  • 好的。我试过了。我在 chrome 中检查了开发工具中的元素,但该 div 似乎没有将类附加到它上面。我不明白为什么。在另一个弹出窗口中,我正在做类似的事情,除了我在 元素上加载带有 onclick 事件的弹出窗口,这可以正常工作。那么为什么直接在magnific.open()函数中引用url时不起作用呢?
  • 我以前见过 Chrome 工具并不总是显示浏览器使用的实际标记;如果你有 Firefox+Web Developer Toolbar,有一个“Generated Html”选项。话虽这么说……我不确定。当我用这个插件加载 Ajax 内容时,我没有以任何方式修改它。这对我有用,因为我可以控制两端。
  • 是的,但尚未应用样式,所以我认为该类肯定没有附加到 div 元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多