【问题标题】:jquery position() not working in IE9jquery position() 在 IE9 中不起作用
【发布时间】:2012-01-12 14:34:48
【问题描述】:

还有其他人在 IE 中遇到 position() 奇怪的问题吗?我正在尝试返回居中放置的 div 的左侧位置。 Chrome 返回 342,这是正确的。 IE9 返回 0.5。这是怎么回事?

  var sp = $('.jcarousel-container').position();
  alert(sp.left)

【问题讨论】:

    标签: jquery internet-explorer internet-explorer-9 position


    【解决方案1】:

    在您的 jsfiddle 示例中,.offset() 似乎在 IE9 中有效:

    http://jsfiddle.net/fme6V/7/

    代码如下:

    var sp = $('.jcarousel-container').offset();
    alert(sp.left)
    

    【讨论】:

      【解决方案2】:

      我来做的唯一工作是做类似的事情: var xpos_inside_parent = the_child.offset().left - the_parent.offset().left; 它对我有用,但我希望它会很快在 jquery 中得到修复。

      $('#whatever').position() 如果由 CSS 按数字设置(例如 'left: 20px;')在 IE9 中工作,但这对我来说是微不足道的,因为如果我通过 CSS 设置位置,那么它就是已经知道,不需要通过 jquery 来检索。

      以下示例显示它不适用于“margin: 0 auto”居中元素。它还显示了我的临时修复减去偏移量: http://jsfiddle.net/maxoriola/MAwAH/4/

      【讨论】:

      • 谢谢。这太棒了,甚至在 IE11 中也很重要。很高兴知道 position() 在 ie 与其他浏览器中是相对的,但是您的工作很容易实现。
      【解决方案3】:

      我已经使用此代码使其正常工作。也许你可以用它来纠正你自己的。

      http://jsfiddle.net/fme6V/

      【讨论】:

      • 好的。我可能错过了一些重要的信息。 div 有一个固定的大小,一个相对的位置,左右边距设置为自动,所以它位于屏幕的中间。
      • 您能在 jsfiddle 中发布您的代码吗?这样一来,查看它会更容易。 ;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多