angularjs 页面自适应高度的方法


Posted in Javascript onJanuary 17, 2018

需求

在angularjs构建的业务系统中,通过ui-view路由实现页面跳转,初始化进入系统后,右侧内容区域需要自适应浏览器高度。

实现方案

  1. 在ui-view所在的Div添加directive,directive中通过element.css初始化计算div的高度,动态更新div高度
  2. directive监听($$watch)angular的$digest,实时获取body高度,动态赋值model或element.css改变

方案1:添加directive和element.css自适应高度

1.创建directive

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.div元素添加directive

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

3.效果图

原界面:右侧区域的高度为自适应内容,导致下方存在黑色的背景色

angularjs 页面自适应高度的方法

调整后:右侧区域的高度自适应浏览器

angularjs 页面自适应高度的方法

方案2:$watch监听body高度,赋值改变高度

1.创建resize directive

var app = angular.module('miniapp', []);

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

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

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

    }, true);

    w.bind('resize', function () {
      scope.$apply();
    });
  }
})

2.在div元素上增加resize directive

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中如何处理引号编码&amp;#034;
Aug 15 Javascript
JSONP跨域的原理解析及其实现介绍
Mar 22 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
Jan 28 Javascript
js控制div层的叠加简单方法
Oct 15 Javascript
微信小程序 request接口的封装实例代码
Apr 26 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
Sep 03 Javascript
百度小程序自定义通用toast组件
Jul 17 Javascript
react实现antd线上主题动态切换功能
Aug 12 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 18 Javascript
VueJs监听window.resize方法示例
Jan 17 #Javascript
详解AngularJS之$window窗口对象
Jan 17 #Javascript
React-native桥接Android原生开发详解
Jan 17 #Javascript
vue自定义指令directive实例详解
Jan 17 #Javascript
移动web开发之touch事件实例详解
Jan 17 #Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 #Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
Jan 16 #Javascript
You might like
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
理解javascript模块化
2016/03/28 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
python自动安装pip
2014/04/24 Python
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
python3实现表白神器
2019/04/09 Python
Django对models里的objects的使用详解
2019/08/17 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
浅谈Python协程
2020/06/17 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
简历中的自我评价怎么写
2014/01/29 职场文书
医学生个人求职信范文
2014/02/07 职场文书
现场施工员岗位职责
2014/03/10 职场文书
关于保护环境的标语
2014/06/09 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
抗洪救灾标语
2014/10/08 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书