获取浏览器高度

获取浏览器的高度

(1)

获取浏览器可视区域的高度

$(window).height();
//Cross browser gets the size of Visual area window,Have nothing to do with scroll bars
/***
 * 仅获取可视区域的大小
 */
var getInner=(function() {
    // alert(typeof window.innerWidth !== 'undefined');
    if (typeof window.innerWidth !== 'undefined') {//Notice:'undefined' is right
        return function(){
            return {
                width : window.innerWidth,
                height : window.innerHeight
            }
        }
    } else {
        return function(){
            return {
                width : document.documentElement.clientWidth,
                height : document.documentElement.clientHeight
            }
        }
    }
})();

 

(2)

获取整个文档的高度

$(document).height();
$(document.body).outerHeight(true);
//Cross browser gets the position of scroll
/***
 *
 * @returns {{top: number, left: number, height: 整个文档的高度,包括看不到的部分}}
 */
com.whuang.hsj.getScroll=function(){
    return {
        top:document.documentElement.scrollTop || document.body.scrollTop,
        left:document.documentElement.scrollLeft || document.body.scrollLeft,
        //等价于 $(document).height()
        height:document.documentElement.scrollHeight ||document.body.scrollHeight
    };
};

 

(3)com.whuang.hsj.getScroll()中的height



 $ (‘body’).height() 只表示body的高度,不包括body的margin

### Angular 获取浏览器高度 在 Angular 中获取浏览器视口的高度可以通过多种方式实现。一种常见的方式是在组件中注入 `Window` 对象并访问其属性。 #### 使用原生 JavaScript 方法 可以直接利用 JavaScript 的内置对象来获取浏览器高度: ```typescript import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-root', template: `<div>Browser height is {{ browserHeight }}px</div>` }) export class AppComponent implements OnInit { browserHeight: number; ngOnInit() { this.browserHeight = window.innerHeight || document.documentElement.clientHeight; } } ``` 此方法通过 `window.innerHeight` 或者 `document.documentElement.clientHeight` 来获得浏览器可视区域的高度[^1]。 另一种更推荐的方法是使用 Angular 提供的服务来封装这些操作,从而提高代码的可测试性和维护性。 #### 创建自定义服务 创建一个新的服务用于处理窗口尺寸的变化监听和其他与窗口相关的逻辑: ```typescript import { Injectable } from '@angular/core'; import { Observable, BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class WindowService { private windowHeightSubject = new BehaviorSubject<number>(window.innerHeight); constructor() { window.addEventListener('resize', () => { this.windowHeightSubject.next(window.innerHeight); }); } get windowHeight$(): Observable<number> { return this.windowHeightSubject.asObservable(); } } ``` 接着可以在任何需要的地方订阅这个 observable 来接收最新的窗口高度变化通知。 最后,在组件里引入该服务并订阅数据流: ```typescript import { Component, OnDestroy, OnInit } from '@angular/core'; import { Subscription } from 'rxjs'; import { WindowService } from './services/window.service'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit, OnDestroy { subscription!: Subscription; browserHeight: number; constructor(private windowService: WindowService) {} ngOnInit() { this.subscription = this.windowService.windowHeight$.subscribe(height => { this.browserHeight = height; }); } ngOnDestroy() { if (this.subscription) { this.subscription.unsubscribe(); } } } ``` 这种方法不仅能够实时响应窗口大小改变事件,还遵循了Angular的最佳实践原则[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值