在 Ionic 中动态更新滚动区域
Update scroll area dynamically in Ionic
嗨,我有一个离子项目的代码笔。
它现在只显示一个图像,我已经做了两个按钮来放大和缩小。
问题是当我单击放大并滚动到最右侧或右下角,然后单击缩小时......滚动区域没有更新,我只剩下白屏。
如果我点击屏幕一次,滚动区域就会调整!
如何使此操作自动发生?
http://codepen.io/anon/pen/VaGeeg
angular.module('ionicApp', ['ionic'])
.controller('MyCtrl', function($scope) {
// get image-holder details
$scope.imageHolderDetails = document.getElementById('img-holder').getBoundingClientRect();
$scope.imageHolderWidth = $scope.imageHolderDetails.width;
// get image
$scope.image = document.getElementById('image');
//set zoom amount to image-holder width x 2
$scope.zoomAmount = $scope.imageHolderDetails.width * 2;
// set the image to full width of image-holder
$scope.image.style.width = $scope.imageHolderWidth + 'px';
// zoom in
$scope.zoomIn = function() {
$scope.image.style.width = $scope.zoomAmount + 'px';
}
// reset zoom
$scope.zoomOut = function() {
$scope.image.style.width = $scope.imageHolderDetails.width + 'px';
}
});
body {
cursor: url('http://ionicframework.com/img/finger.png'), auto;
}
<html ng-app="ionicApp">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title>Ionic Template</title>
<link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet">
<script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script>
</head>
<body ng-controller="MyCtrl">
<ion-header-bar class="bar-stable">
<h1 class="title">Gummy bears anyone?</h1>
</ion-header-bar>
<ion-content id="img-holder" scroll="true" overflow-scroll="false" locking="false" direction="xy">
<img id="image" src="https://static.pexels.com/photos/55825/gold-bear-gummi-bears-bear-yellow-55825.jpeg">
</ion-content>
<ion-footer-bar class="bar-royal">
<a class="tab-item" ng-click="zoomOut()">
<i class="icon ion-minus"></i>
</a>
<a class="tab-item" ng-click="zoomIn()">
<i class="icon ion-plus"></i>
</a>
</ion-footer-bar>
</body>
</html>
你需要
打电话给$ionicScrollDelegate.resize()
http://codepen.io/mhartington/pen/eZLZdx
这是我在Ionic中使用手风琴时遇到的一个问题.我得到的建议是在操作后使用以下代码自动更新可滚动区域(放大或缩小后):
$timeout($ionicScrollDelegate.resize, 100);
需要使用$timeout
来确保正确调用$scope.apply()
。我发现使用 0
值作为超时是不够的,并选择使用 100 毫秒。这又是我在Ionic论坛上找到的建议。您应该在文档中查看$ioncScrollDelegate
及其关联的指令以获取更多信息。
相关文章:
- 阻止文本区域垂直滚动
- 如何用按钮控制文本区域滚动
- 按下后退按钮时,如何保持可滚动区域的滚动位置
- 在文本区域中上下滚动
- 在 Ionic 中动态更新滚动区域
- 将滚动区域的顶部与由 CSS 修复的覆盖元素分开
- 获取页面高度的未滚动区域
- 在html中,一个滚动区域可以嵌套在另一个滚动区中吗
- Css”;右“;负值而不扩展滚动区域
- 如何在HTML页面上创建一个不可见的可滚动区域
- jQuery Scroll-在进入/退出滚动区域时触发一次功能
- 使SmoothDivScroll从可滚动区域的中心开始
- 具有扩展组件的动态滚动区域
- 如何为应用程序截图创建一个漂亮的水平滚动区域,就像iTunes上的应用程序一样
- 是否有一个JavaScript/css的方法,使同步滚动区域类似于"meld"
- 用jQuery水平滚动区域
- 更改网页上的主滚动区域,使其停止在远离视窗底部的某一点上
- 我如何模仿gchat的可滚动区域
- 带滚动窗格但不带滚动条的可滚动区域
- 可滚动区域内的居中元素