【高度自适应】基于像素(px)为单位的高度自适应,适合单屏页面

/*基于像素(px)为单位的高度自适应,适合单屏页面*/

//设置高度(延伸到浏览器底部 或 延伸到参考元素底部,可以设置减少量)
$.fn.fnSetHeight = function(A, B) {
    if (this.length > 0) {
        //参数处理
        var $Reference, Decrease;
        switch (arguments.length) {
            case 0:
                $Reference = $(window);
                Decrease = 0;
                break;
            case 1:
                if (typeof A === ‘number‘) {
                    $Reference = $(window);
                    Decrease = A;
                } else {
                    $Reference = $(A).eq(0);
                    Decrease = 0;
                }
                break;
            default:
                $Reference = $(A).eq(0);
                Decrease = B;
        }
        //设置高度
        if ($Reference.length > 0) {
            var isWindow = $Reference[0] === window;
            this.each(function() {
                var setHeight = function(target) {
                    var $target = $(target);
                    var ta_offsetTop = $target.offset().top,
                        re_offsetTop = isWindow ? 0 : $Reference.offset().top;
                    var ta_top = parseInt($target.css(‘padding-top‘)) + parseInt($target.css(‘border-top-width‘)),
                        re_top = isWindow ? 0 : parseInt($Reference.css(‘padding-top‘)) + parseInt($Reference.css(‘border-top-width‘));
                    var h = $Reference.height() + re_top - (ta_offsetTop - re_offsetTop) - ta_top - Decrease;
                    $target.height(parseInt(h));
                };
                setHeight(this);
                //为窗体的resize事件作准备(在闭包里为DOM添加方法与属性)
                if (!this.ExecutionSequence) {
                    if (!window.__SetHeightExecutionSequence) window.__SetHeightExecutionSequence = 1;
                    this.setHeight = function() { //给DOM添加方法:设置高度
                        setHeight(this);
                    };
                    this.ExecutionSequence = window.__SetHeightExecutionSequence; //给DOM添加属性:记录执行顺序
                    window.__SetHeightExecutionSequence++;
                    $(this).addClass(‘resize-setHeight‘);
                }
            });
        }
    }
    return this;
};

//对窗体的resize事件进行包装,防止多次触发
window.Win_resize = function(Func, Time) {
    var isRun = true,
        time = Time !== 0 ? Time || 250 : 0;
    $(window).resize(function(e) {
        if (isRun) {
            isRun = false;
            setTimeout(function() {
                isRun = true;
                Func(e);
            }, time);
        }
    });
};

//对当前可见的视图进行高度自适应
window.$CurrentView = $(); //该选择器需要在相应的事件里被更新 ...
window.ResizeSetHeight = function() {
    var $target = $CurrentView.find(‘.resize-setHeight:visible‘);
    var ArrayDOM = $.makeArray($target);
    //按执行顺序排队
    ArrayDOM.sort(function(a, b) {
        return a.ExecutionSequence - b.ExecutionSequence;
    });
    //出列执行
    for (var i = 0; i < ArrayDOM.length; i++) {
        ArrayDOM[i].setHeight();
    }
};

//绑定事件
Win_resize(ResizeSetHeight, 500); //窗体resize时高度自适应
$(‘#xxx‘).on(‘click‘, ‘.xxx‘, function() { //其它事件时高度自适应,比如标签页切换时 ...
    if (xxx) {
        $(window).resize(); //或:ResizeSetHeight();
    }
});

//setHeight使用情况,选择器可以是:字符串 || jQ对象 || DOM对象
$(‘#xxx‘).fnSetHeight(); //延伸到浏览器底部
$(‘#xxx‘).fnSetHeight(20); //延伸到浏览器底部,并减少20px
$(‘#xxx‘).fnSetHeight(‘#reference‘); //延伸到参考元素底部
$(‘#xxx‘).fnSetHeight(‘#reference‘, 20); //延伸到参考元素底部,并减少20px
时间: 2024-08-24 20:34:47

【高度自适应】基于像素(px)为单位的高度自适应,适合单屏页面的相关文章

android-getTextSize返回值是以像素(px)为单位的,setTextSize()以sp为单位

使用如下代码时,发现字号不会变大,反而会变小:size = (int) mText.getTextSize() + 1;mText.setTextSize(size);后来发现getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的,两者单位不一致才造成这样的结果. 这里可以用setTextSize()的另外一种形式,可以指定单位:setTextSize(int unit, int size)TypedValue.COMPLEX_UNIT_PX : Pi

Android中dip(dp)与px之间单位转换

px   :是屏幕的像素点in    :英寸mm :毫米pt    :磅,1/72 英寸dp   :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1pxdip  :等同于dpsp   :同dp相似,但还会根据用户的字体大小偏好来缩放.建议使用sp作为文本的单位,其它用dip 针对dip和px 的关系,做以下概述: QVGA屏density=120:          QVGA(240*320) HVGA屏density=160:          HVGA(320*480

em px pt单位介绍及换算

PX\EM\PT单位介绍 px Pixel单位名称为像素,相对长度单位,像素(px)是相对于显示器屏幕分辨率而言的国内推荐:em单位名称为相对长度单位.相对于当前对象内文本的字体尺寸,国外使用比较多,这里em与html <em>标签的"EM"拼写完全相同,而这里em作为单独文本单位.pt单位名称为点(Point),绝对长度单位一般老版本的table使用长度大小单位但是现在基本上没有使用. 1. 以前IE无法调整那些使用px作为单位的字体大小,但现在几乎IE都支持 在这里也推

俩列布局(左边固定,右边自适应),等高布局,最小高度

俩列布局(左边固定,右边自适应): 1. <!DOCTYPE html> <html> <head> <title>俩列布局</title> <meta charset="utf-8"> <style type="text/css"> *{         margin: 0;         padding: 0;     } #left {         float: left

css高度已知,左右定宽,中间自适应三栏布局

css高度已知,左右定宽,中间自适应三栏布局: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X

用nodejs把目录下所有用px做单位的css文件转化为用rem做单位的css文件

20171105 1211/星期日 公司为了更好适配手机端,以前用px做单位的css文件,全部需要转化为用rem做单位,目前是1rem=37.5px;开发新项目时,还是用习惯的px写样式代码,完成UI稿的还原后,再统一转化为用rem做单位,贴上我写的nodejs 代码: var fs = require('fs');var path=require('path'); console.log((__dirname))var oldContent='./px/';var newContent='./

iOS tableViewCell 在自定义高度方法中遇到的问题,cell高度为0,cell显示不出来,cell直接显示第几个而不是...cell显示个数不对

遇到以上问题可以看看你的cell高度中是否有,自定的高度,有了继续看,没有了继续百度... 在文字排版中,少不了自适应文字高度,行间距什么的:显然cell的高度时不固定的,如果复用自定义的cell的话,又要及时把高度传给cell,进行赋值: 在-(UITableViewCell*)tableview... cellForRow...{在里边进行计算cell高度时可以的,需要将数值赋值给 cell.height=这个属性: 不可以设置全局CGFloat传值,因为赋值还没有进行完,在HeightRo

商品详情页面特殊制作,获取网页的高度,collectionView根据内容的变化其高度也随着变化

商品详情页面特殊制作,获取网页的高度,collectionView根据内容的变化其高度也随着变化,首先先看下效果图: 然后我来介绍一下这个界面的总体架构,整个页面上放置一个tableView,下面的网页是tableView的footerview,中间规格所在的区域是一个cell上放置一个collectionView, 问题点1:商品规格可能有很多种,比如颜色.重量.也可能没有规格,所以中间的cell的高度是根据规格的多少而变化的,那么collectionView创建完成以后要怎么通知tableV

基于jQuery+CSS3点击动画弹出表单代码

分享一款基于jQuery+CSS3点击动画弹出表单代码是一款鼠标点击图标按钮动画弹出表单特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="buttonCollection"> <div class="qutton" id="qutton_upload"> <div class="qutton_dialog" id="uploadDial