- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
可以使用 ng-repeat
来实现以下编译后的 DOM:
<div class="container">
<!-- ngRepeat item in items -->
<div ng-repeat="item in items">Item 1</div>
<!-- end ngRepeat: item in items -->
<!-- ngRepeat item in items -->
<div ng-repeat="item in items">Item 2</div>
<!-- end ngRepeat: item in items -->
<!-- ngRepeat item in items -->
<div ng-repeat="item in items">Item 3</div>
<!-- end ngRepeat: item in items -->
<div class="wrapper">
<!-- ngRepeat item in items -->
<div ng-repeat="item in items">Item 4</div>
<!-- end ngRepeat: item in items -->
<div ng-repeat="item in items">Item 5</div>
<!-- end ngRepeat: item in items -->
</div>
</div>
即将最后 n 个元素包装在另一个元素中。
这似乎是一个奇怪的请求,我知道使用两个 ng-repeat
指令来实现这一点是微不足道的。但是,它需要是单个 ng-repeat
,这样我就可以将元素移入和移出包装器,而无需将它们添加到 DOM 中或从 DOM 中移除(以描述的方式 here )。
我想要实现的是通过为 .wrapper
元素提供 overflow:hidden
并使用 javascript 为 top 设置动画来实现新闻滚动效果
子元素的位置。老实说,我宁愿根本不需要包装器元素,但我不确定是否有任何其他方法可以实现我需要的滚动效果。也许操纵 clip
属性来实现效果可能有效,但我不完全确定。
所以可以将包装器元素应用于 ng-repeat
中的某些元素?
最佳答案
不幸的是,当您更改可视化树中元素的父级时,必须将其删除并重新添加。在其他问题中,请考虑样式规则如何根据谁的父级应用不同。在动画中这也是一件相当昂贵的事情。
令人失望?也许吧。
但是通读你的用例,我想你会发现 Angular 非常擅长处理这种动画,只需要一点点代码。我提供了一个 fiddle 供您使用:
创建自己的布局并将其绑定(bind)到页面上的元素非常容易。我们将首先使用 ng-repeat
为每个元素吐出一行:
<div class="container" ng-app ng-controller="Foo">
<div class="item"
ng-repeat="item in items"
ng-style="{'top': item.top + 'px'}">{{item.name}}
</div>
</div>
因为我们要处理自己的布局,所以容器中的每个元素都是position: absolute
。看看我们如何将 top
绑定(bind)到 item.top + 'px'
?我们需要做的就是在动画循环中调整这些最高值。我将使用 requestAnimationFrame
,因为它是我用于手动动画的首选工具,但如果您更习惯,也可以使用 css 过渡或动画。
我将初始化 Controller 中的最高值。这就是它的用途,保持状态:
$scope.items.forEach(function(item, idx) {
item.h = height;
item.top = idx * (height + margin);
console.log(item);
});
然后我将设置一个动画循环:
var tick = function() {
$scope.$apply(function() {
$scope.items.forEach(function(item, idx) {
item.top -= velocity;
if (item.top < -(height + margin)) {
item.top += $scope.items.length * (height + margin);
}
});
});
requestAnimationFrame(tick);
};
然后开始整个事情:
requestAnimationFrame(tick);
你可以用它做一些巧妙的改进:
$apply
将更改传播到 Dom,不如自己直接操作样式。这可以提高动画性能。if
条件触发并且我们将元素重置为代码底部时,我们可能会检查是否有不同的内容要放入代码元素中。这样,您可能会有一个随时间变化的实时更新代码。我希望这对您有所帮助,我希望执行此操作所需的少量代码会鼓励您摒弃依赖 HTML 为您进行布局的想法。
关于javascript - 在 ng-repeat 中添加一些元素的包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29971766/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!