Nano Hash - криптовалюты, майнинг, программирование

Динамическое обновление области прокрутки в 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>


Ответы:


1

Вам нужно позвонить $ionicScrollDelegate.resize()

http://codepen.io/mhartington/pen/eZLZdx

25.04.2016

2

Это проблема, с которой я столкнулся, работая с аккордеонами в Ionic. Совет, который мне дали, заключался в том, чтобы использовать следующий код после ваших действий для автоматического обновления прокручиваемой области (после увеличения или уменьшения масштаба):

    $timeout($ionicScrollDelegate.resize, 100);

Использование $timeout необходимо для обеспечения правильного вызова $scope.apply(). Я обнаружил, что использование значения 0 для тайм-аута недостаточно, и решил использовать 100 миллисекунд. Опять же, это был совет, который я нашел на форумах Ionic. Вы должны проверить $ioncScrollDelegate и связанные с ним директивы в документах для получения дополнительной информации.

25.04.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..