jQuery 可视化展示

Posted

技术标签:

【中文标题】jQuery 可视化展示【英文标题】:JQuery Visible Show 【发布时间】:2012-04-02 23:26:51 【问题描述】:

我有以下代码:

$('#loading').css("visibility", "visible");

$('#loading').show();

由于某些我不知道的原因,当我使用 CSS 时它可以工作!

但是当我使用 .show();

它不起作用。请帮助。我是 JQuery 的新手。

谢谢。

编辑:

<div class="footerOrder" id="loading" style="visibility:visible;">
      <img src="../utils/loadingExistenz.gif"   border="0" />
</div>

试过这个:

<div class="footerOrder" id="loading" style="display:block;">

然后:

$('#loading').hide();

由于某种原因仍然没有成功!

编辑:奇怪的是它适用于所有其他 DIV!

【问题讨论】:

【参考方案1】:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function()
$('div#sidebar-collapses').click(function()
  if ( $("#title").is(":hidden") )  
    $("#title").show(); 
   else if ( $("#title").is(":visible") )  
    $("#title").hide(); 
  
)

);
</script>
</head>
<body>
<div class="sidebar-collapse" style="" id="sidebar-collapses">
     <a href="#" class="sidebar-collapse-icon with-animation">
         Test              
         <i class="menu"></i>
     </a>
 </div>
 <a href="mysite_url" id="title" style="display:none;"> <br> My Site Name </a>

</body>
</html>

【讨论】:

【参考方案2】:

jQuery .show() 需要有 display:none css 属性

【讨论】:

【参考方案3】:

我会坚持将visibility: hidden; 放在元素上,然后使用.css("visibility", "visible"); 精确显示它,因为它仍然占用页面空间。

这将避免在加载时出现抖动的页面以及可怕的看不见内容的 Flash (FOUC)。

【讨论】:

【参考方案4】:

jQuery 的 .show().hide() 仅对 CSS display 属性进行操作,而不对 visibility 属性进行操作。我刚刚检查了 jQuery 1.7 的源代码并验证了是这样的。

因此,.css('display', 'none') 将与 .show() 匹配。

如果您想更改可见性,您只需直接更改 css 或创建自己的 hideV()showV() 方法为您完成:

jQuery.fn.showV = function() 
    this.css('visibility', 'visible');


jQuery.fn.hideV = function() 
    this.css('visibility', 'hidden');

【讨论】:

在文档中找到这个:Elements with **visibility: hidden** or opacity: 0 are considered to be visible, since they still consume space in the layout.【参考方案5】:

根据文档:

.show() This is roughly equivalent to calling .css('display', 'block')

所以如果你搞砸了visibility,它对你没有帮助。

你应该做的是,总是用.css('display', 'none').hide()隐藏


我刚刚发现这很有用 docs:

具有 visibility: hidden 或 opacity: 0 的元素被视为可见,因为它们仍会占用布局中的空间。

【讨论】:

【参考方案6】:

使用display:none; 代替可见性

这对我来说很好用

$(function()   

    $("#aLink2").click(function()
        $('#loading').show();
    );  

);​

工作样本:http://jsfiddle.net/HShHg/6/

【讨论】:

我看到了您的示例并且它正在工作,但我无法让它在我的页面中工作。你认为同时拥有一个类和一个 ID 会导致这种行为吗? 元素的 ID 应该是唯一的。使用 firebug 控制台选项卡检查是否存在其他脚本错误 @i。不,它不能!元素上有visibility: hidden 吗?你是怎么隐藏的? 很好地发现了问题:window.document.getElementById("loading").style.visibility = "hidden";代码中的某个地方阻止了它! @iGuygar : 很高兴你知道了。

以上是关于jQuery 可视化展示的主要内容,如果未能解决你的问题,请参考以下文章

大屏可视化展示系统:数据可视化展示才能发挥数据价值

LBMS直播数据可视化系统展示

数据可视化大屏展示设计

创新应用场景下的可视化大屏:重新定义信息展示

数据可视化分析大屏展示系统推动大数据应用

echarts-python数据可视化大屏展示