【问题标题】:Outerwidth() function returns 0, when using for siblings用于兄弟姐妹时,Outerwidth() 函数返回 0
【发布时间】:2018-03-29 10:57:40
【问题描述】:

我有 4 个不同的 div 带有图像缩略图。对于缩略图单击,我创建了一个 jQuery 脚本来放大图像。放大图像适用于第一页 #C1,但其余页面 outerWidth 返回 0。因此,放大图像未按预期显示。类 collection-column 在 CSS 中设置为 display: none。单击下拉菜单时,我使用fadeOut() 隐藏其所有同级,并显示当前的#(href 属性)。我不能使用visibility:hidden,因为它完全隐藏了页面。

如何将outerWidth() 函数用于所有其他页面。

<div class="collection-column" id = "#c1">....</div>
<div class="collection-column" id = "#c2">....</div>
<div class="collection-column" id = "#c3">....</div>
<div class="collection-column" id = "#c4">....</div>

有人遇到过类似的问题吗?请帮忙!!

【问题讨论】:

  • 好吧,当您调用外部宽度时,您的图像尚未加载。使用图像加载事件进行计算。
  • 它在第一页“#C1”上工作正常,它返回了正确的outerWidth()值。但不适用于其他页面 #C2 、#C3 等。
  • 您无法获取隐藏元素的尺寸。但是有一些解决方法。

标签: jquery outerwidth


【解决方案1】:

有一个解决此问题的方法,将位置设置为绝对位置并将元素移动到不可见区域。然后得到它的尺寸并恢复原来的位置。

var getStyle = function (el, prop) {
    if (typeof getComputedStyle !== 'undefined') {
        return getComputedStyle(el, null).getPropertyValue(prop);
    } else {
        return el.currentStyle[prop];
    }
}

var getOuterWidth = function(element){
   var originalDisplay = getStyle(element.get(0), "display");
   if(originalDisplay == "hidden"){
       var originalPos = getStyle(element.get(0), "position");
       var originalLeft = getStyle(element.get(0), "left");
       var originalTop = getStyle(element.get(0), "top");
       element.css({ top : -10000, left: -10000, position: "absolute", display: "block"  });
    }

    var outerWidth = element.outerWidth();

    if(originalDisplay == "hidden"){
        element.css({ top : originalTop, left: originalLeft, position: originalPosition, display: originalDisplay });
    }

    return outerWidth;
}

用法:

getOuterWidth($("#c4"));

【讨论】:

  • 谢谢。但我不确定如何使用它。让我清楚地说明我的问题。这是我的网站链接:ushaprudhvi.000webhostapp.com 在收藏链接下,我有四页的链接。目前,第 2 个(裁剪上衣和裙子)和第 3 个链接(手提包)试图显示图像缩略图,并且它们使用相同的类名,即“collecion-column”。当我单击缩略图时,它正在放大图像。此功能适用于第二个链接。但不是第三个链接。
  • 由于公司防火墙,我无法打开该网址。
猜你喜欢
  • 2019-05-06
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 2014-04-23
  • 2019-08-29
相关资源
最近更新 更多