【问题标题】:ajax popup display center in bodyajax弹出显示中心在正文中
【发布时间】:2015-06-29 02:16:19
【问题描述】:

我想在正文中加载我的弹出中心。我已经尝试过这样做。但它不工作。 这是我的链接:http://sriads.com/shopping/product/(点击Add to Cart按钮)

this script from :http://dinbror.dk/bpopup/

头部样式

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="http://dinbror.dk/bpopup/assets/jquery.bpopup-0.11.0.min.js"></script>
<script src="http://dinbror.dk/bpopup/assets/scripting.min.js"></script>

jQuery

<script>
      jQuery(function ($) {

        $('.button').on('click', function () {
            var id = $(this).data('id');

            $.ajax({
                url: '/shopping/ajax.php',
                data: {
                    id: id
                },
                method: 'POST',
                success: function (html) {
                    $('body').append(html);
                    $(html).bPopup();
                },
                error: function (returnValue) {}
            });
        });


    });
</script>

按钮 html

<button type="button" class="button small cart-button" data-id="2222">Add to Cart</button>

ajax.php 文件

<div id="popup">
  <div class="inner">
  <h2>Item added to your cart!</h2>
  <!-- here some html and php codes -->
  </div>
</div>

【问题讨论】:

标签: javascript jquery html css ajax


【解决方案1】:

height: auto 应该可以在这里工作。

#popup 的 CSS:

#popup {
  background-color: #FFF;
  box-shadow: 1px 1px 4px #000;
  display: none;
  height: auto;
  width: 450px;
  font-family: 'Roboto', Arial;
  position: absolute;
  margin: 0 auto;
}

【讨论】:

    【解决方案2】:

    要将弹出窗口居中显示在屏幕上,您必须像这样设置以下属性 -

    #popup {
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      margin: auto;
      position: absolute;
      width: 450px;  // Any fixed width
      height: 300px; // Any fixed height
      ............
      ............
    }
    

    【讨论】:

    • 这是伙伴的方式,也许可以使用css是否被一些硬编码的css覆盖来检查浏览器检查元素。我看到一些 CSS 与 div 一起编写,我猜这些 CSS 会覆盖这里的属性。
    • imageshack.com/a/img901/6587/FRdQK3.png 检查上面的链接,您似乎喜欢使用 javascript 动态添加 css left 和 top 属性。查看我如何通过从元素样式中注释掉左侧和顶部 CSS 并编辑弹出样式来重新格式化您的 CSS
    • imageshack.com/a/img903/8722/H6rVRO.png 还检查此图像的变化。随着元素 css 消失,即使您调整屏幕大小,弹出窗口也将一直停留在中心。
    • 您是否注释掉了导致 CSS 顶部和左侧属性更新的 javascript 代码?
    • 需要查看您的 css,而且正如我所说,您代码中的 css top 和 left 属性正在从 javascript 更新,仅更改 css 并且加载页面将不起作用。也许你的代码中有类似 $('#popup').css({'left':'[some percent value]','top':'[some percent value]'});这使得 top 和 left 属性在页面加载或窗口调整大小时得到更新。注释掉该代码,更新后的 css 将起作用。
    【解决方案3】:

    使用 jquery 使弹出窗口居中;

    <script type="text/javascript" >
        $('#popup').position({
                of: $(window)
            });
    </script>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多