【问题标题】:Get (static) offset from fixed element从固定元素获取(静态)偏移量
【发布时间】:2016-10-26 21:51:56
【问题描述】:

我有一个位置固定的“粘性”元素。客户端调整屏幕大小或 DOM 更改后;我需要重新定义静态(相对)位置。

当元素有一个固定位置(它粘住)时,我只需将元素的位置更改为相对位置,获取它的偏移量并重置位置:

if (self.isStick) {
    elemOffset = $element.css('position', 'relative').offset();
    $element.css('position', 'fixed');
} else {
    elemOffset = $element.offset();
}

这可行,但感觉有点 hacky。我想知道是否有替代方案 - 具有更好的性能。有什么想法吗?

【问题讨论】:

  • elemOffset = self.isStick ? $element.clone().css('position', 'relative').offset() : $element.offset();

标签: javascript jquery css-position offset sticky


【解决方案1】:

这是使用 JQuery .clone() 复制元素的示例。获取一行元素的偏移量

elemOffset = self.isStick ? $element.clone().css('position', 'relative').offset() : $element.offset();

【讨论】:

  • 这是一个不错的 oneliner,但我很确定 .clone() 对元素和它的子元素进行了深层复制。我认为这比给定的代码表现更差。如果我错了,请纠正我。
  • 你正在考虑内存泄漏
猜你喜欢
  • 1970-01-01
  • 2021-05-08
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
相关资源
最近更新 更多