ホームページ >ウェブフロントエンド >jsチュートリアル >angularjsでページアダプテーションを実装するにはどうすればよいですか?

angularjsでページアダプテーションを実装するにはどうすればよいですか?

亚连
亚连オリジナル
2018-06-11 16:18:372573ブラウズ

この記事では主にangularjsページの高さを調整する方法を紹介し、参考にさせていただきます。

要件

angularjs で構築されたビジネス システムでは、初期化してシステムに入った後、ページ ジャンプがブラウザの高さに適応する必要があります。

実装計画

  1. ui-viewが配置されているpにディレクティブを追加し、ディレクティブ内でのelement.cssの初期化によりpの高さを計算し、pの高さを動的に更新する

  2. ディレクティブ監視($$watch) ) angular の $ ダイジェスト、リアルタイムでボディの高さを取得し、モデルまたは element.css の変更を動的に割り当てます

オプション 1: ディレクティブと element.css 適応高さを追加します

1 ディレクティブを作成します

define([ "app" ], function(app) {
  app.directive('autoHeight',function ($window) {
    return {
      restrict : 'A',
      scope : {},
      link : function($scope, element, attrs) {
        var winowHeight = $window.innerHeight; //获取窗口高度
        var headerHeight = 80;
        var footerHeight = 20;
        element.css('min-height',
            (winowHeight - headerHeight - footerHeight) + 'px');
      }
    };
  });
  return app;
});

2.p。要素追加ディレクティブ

<p ui-view auto-height></p>

3. 効果画像

元のインターフェース: 右側の領域の高さは適応コンテンツであり、その結果、下に黒い背景色が表示されます

調整後: 右側の領域の高さは、ブラウザ

解決策 2: $watch はボディの高さを監視し、高さを変更する値を割り当てます

1. サイズ変更ディレクティブ

var app = angular.module(&#39;miniapp&#39;, []);

function AppController($scope) {
  /* Logic goes here */
}

app.directive(&#39;resize&#39;, function ($window) {
  return function (scope, element) {
    var w = angular.element($window);
    scope.getWindowDimensions = function () {
      return { &#39;h&#39;: w.height(), &#39;w&#39;: w.width() };
    };
    scope.$watch(scope.getWindowDimensions, function (newValue, oldValue) {
      scope.windowHeight = newValue.h;
      scope.windowWidth = newValue.w;

      scope.style = function () {
        return { 
          &#39;height&#39;: (newValue.h - 100) + &#39;px&#39;,
          &#39;width&#39;: (newValue.w - 100) + &#39;px&#39; 
        };
      };

    }, true);

    w.bind(&#39;resize&#39;, function () {
      scope.$apply();
    });
  }
})

を作成します2. サイズ変更ディレクティブ

<p ng-app="miniapp" ng-controller="AppController" ng-style="style()" resize>
  window.height: {{windowHeight}} <br />
  window.width: {{windowWidth}} <br />
</p>

を p に追加します。上記は私が皆さんのためにまとめたものであり、将来的には皆さんのお役に立つことを願っています。

関連記事:

jquery+css3を使ってパンダTVナビゲーションを実装する方法

jQueryで時限非表示ダイアログボックスを実装する方法

vue-adminとバックエンド(flask)の分離と組み合わせの詳細な解釈)

Vueで背景画像を設定する

vue+lessを使った簡単なスキン変更機能の実装方法

angular、react、vueを使って同じインタビュー質問コンポーネントを実装する方法

以上がangularjsでページアダプテーションを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。