我正在构建一个用于在iPad上部署的Web应用程序,我们正在寻找一种方法来禁用整个视图的滚动,除了某些div。理想情况下,能够将scroll
类或其他内容应用于div并且仅允许scroll
类滚动是很棒的。
Angular方法应该在这里做什么?我在网上看过各种各样的JQuery和纯Javascript方法,但所有这些方法看起来都非常混乱,不一定是防弹。
答案 0 :(得分:1)
一个选项是确定设备窗口的高度(允许您使用任何deivce / pc)并以ng风格设置div的最大高度。
$scope.windowHeight = $window.innerHeight; //might need to subtract 30 pixels for side scrollbar if needed.
$scope.innerDivHeight = Math.ceil($scope.windowHeight / 3) //Whatever scale you want your inner divs to be.
然后
<div class="container" ng-style="{'max-height': windowHeight+'px', 'overflow':'none'}">
<div class="innerDiv" ng-style="{'max-height': innerDivHeight+'px', 'overflow':'auto'}">
</div>
</div>
你可能不得不稍微嘲笑它,但这样它可以同时适用于台式机和iPad,而不会引入平台特定的要求。请注意,如果超过高度,则不会滚动,并且auto为yes,如果超过高度,则在此div内滚动。
就像我说的,这可能不是你想要的,但你不需要任何额外的复杂性来做到这一点。