从 Popover 中移除阴影

Posted

技术标签:

【中文标题】从 Popover 中移除阴影【英文标题】:Remove Shadow from Popover 【发布时间】:2017-09-08 12:51:17 【问题描述】:

我正在使用 JQuery-mobile 为我的按钮实现弹出框。我的目标是消除弹出框后面的阴影。我怎样才能做到这一点?

参考:http://api.jquerymobile.com/popup/#option-shadow

.ui-content 
  shadow: false
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>


<div data-role="main" class="ui-content">

  <a href="#myPop1" data-rel="popup" class="ui-btn ui-btn-inline">Click Me to display popup</a>
  <a href="#myPop1" data-rel="popup" class="ui-btn ui-btn-inline">Click Me to display popup</a>
  <a href="#myPop1" data-rel="popup" class="ui-btn ui-btn-inline">Click Me to display popup</a>
  <a href="#myPop1" data-rel="popup" class="ui-btn ui-btn-inline">test</a>


  <div data-role="popup" id="myPop1" class="ui-content" data-arrow="l,t">
    <p>Awesome <strong>popup!</strong></p>
  </div>


</div>

【问题讨论】:

请加.ui-overlay-shadow box-shadow: none; 啊谢谢你成功了! 【参考方案1】:

它添加了 box-shadow,所以你可以删除它。

#myPop1 
    box-shadow: none;

或者一般来说,如果你想完全覆盖它:

.ui-overlay-shadow 
    box-shadow: none;

还要注意它也会添加文本阴影,因此您可以根据需要以相同的方式删除它

【讨论】:

【参考方案2】:

我们可以看看你的初始化 JS 吗? shadow: false 不是 CSS,因此在您的示例代码中不起作用。

尝试将data-shadow="false" 添加到您的弹出 div 中,就像这样-

<div data-role="popup" id="myPop1" data-shadow="false" class="ui-content" data-arrow="l,t">
  <p>Awsome <strong>popup!</strong></p>
</div>

或将shadow: false 添加到您呼叫.popup()的任何位置-

$( "#myPop1" ).popup(
  shadow: false
);

希望这有帮助!

【讨论】:

好答案,点赞!鉴于 JQM 参考页(?),我想知道 CSS 是从哪里来的(?)【参考方案3】:

以下是如何在 CSS 中获得“平面”JQM 弹出窗口(没有任何框阴影):

.ui-popup-container * 
  -moz-box-shadow: none !important;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>


<div data-role="main" class="ui-content">

  <a href="#myPop1" data-rel="popup" class="ui-btn ui-btn-inline">Click Me to display popup</a>


  <div data-role="popup" id="myPop1" class="ui-content" data-arrow="l,t">
    <p>Awesome <strong>popup!</strong></p>
            <a href="#" class="ui-btn ui-corner-all" data-rel="back">OK</a>
  </div>


</div>

跨浏览器,适用于动态创建的元素,也适用于包含的元素,例如按钮或列表视图。 或者,在Daniel Davies的答案中使用建议的方法

【讨论】:

【参考方案4】:

当您激活悬停时.. (.hover?.click?) 但是您会这样做。在该函数中添加此代码:

$('.ui-content').css('text-shadow','0');

或者,如果您找不到该功能,您可以添加一个自定义:

$('.blah').on('hover', function() $('.ui-content').css('text-shadow','0'); );

【讨论】:

我不会使用 jQuery 来解决 css 问题,即使是 jQuery UI 会添加样式以开头 刚刚在 CSS 中为您的想法添加了一个答案。试试看,享受吧! (当然,对于 text-shadow,你是对的,但这也可以在 CSS 中完成)

以上是关于从 Popover 中移除阴影的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中移除 AppBar for Android 上方的阴影?

iOS Popover 或 ActionSheet 导致 UISegmentedControl 按钮变灰

iOS:从 popOver 刷新 ViewController

如何从 Popover 调用主视图控制器的方法?

无法从 jQuery mobile 可折叠设备中移除蓝色光晕

从另一个 Popover 中关闭显示为 Popover segue 的 ViewController