【问题标题】:Absolute position div not rendering properly when modified within ng-repeat - Chrome specific issue在 ng-repeat 中修改时,绝对位置 div 无法正确呈现 - Chrome 特定问题
【发布时间】:2015-08-15 16:33:06
【问题描述】:

这种行为让我有些困惑,因此我希望获得一些外部帮助以了解正在发生的事情。

我准备了一个小提琴来说明http://jsfiddle.net/cseignc/mfoejqum/的行为

我有一个 html 表格,其标题通过一些 CSS 绝对定位第二个标题来保持固定。

由于ng-repeat 指令在列和行的数组中循环,生成了该表。

为了提供水平滚动,同时保持第一列和标题固定,我使用startFromLimitTo 过滤器将列数组过滤为ng-repeat

我提供导航按钮(左右 V 形)以允许用户水平滚动表格。这些按钮增加/减少传递给startFrom 过滤器的值。

这对表格正文按预期工作,但第二个标题无法正确呈现。我什至发现无法检测到第二个标头呈现方式的一致性 - 或不呈现。

我最初认为这与未调用 $scope.$apply() 有关,但我所有的代码都在 AngularJs 中,所以我不认为有必要调用它...如果我错了,请纠正我.

我发现调整屏幕大小会导致标题正确呈现。

对此的任何见解将不胜感激。

谢谢!

编辑: 上述问题似乎是特定于 Chrome 的。我已经测试了 IE 和 Firefox 中的行为,并且标题在这些浏览器中正确呈现。

【问题讨论】:

  • 一切都对我有用,或者我不明白这个问题。 00
  • @BroiSatse,当您通过导航按钮水平滚动时,标题的呈现不稳定。

标签: css angularjs google-chrome


【解决方案1】:

我对您的小提琴进行了一些更改,这应该可以让您开始实现您想要的:

http://jsfiddle.net/a06uvkr3/

要点是我:

1) 在控制器中将$scope.skip 初始化为0

2) 抛弃了ng-repeat 过滤器并使用ng-show 和一些基于$index 的逻辑

3) 调整了 CSS,使标题的 .tr-inner 容器是绝对的,而不是里面的东西,并给标题一个固定的高度。还调整了一些填充以解决标题项目被丢弃的问题

显然我无法验证它是否适合您的确切用例,但您可以看到结果更有希望。

【讨论】:

  • 感谢您的回复....除非我弄错了,1) 和 2) 似乎没有多大作用。与您或我的方法相同的行为。 3) 正在删除 ng-repeat 中 div 的绝对位置。这导致 div 始终呈现,但它现在与表格列不对齐......我认为我们回到了我在标题中的最初问题:为什么具有绝对位置的 div 如果在没有的 div 时 ng-repeat 是 ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多