zoukankan      html  css  js  c++  java
  • rem js相关

    !function(n){
        var  e=n.document,
             t=e.documentElement,
             i=720,
             d=i/100,
             o="orientationchange"in n?"orientationchange":"resize",
             a=function(){
                 var n=t.clientWidth||320;n>720&&(n=720);
                 t.style.fontSize=n/d+"px"
             };
             e.addEventListener&&(n.addEventListener(o,a,!1),e.addEventListener("DOMContentLoaded",a,!1))
    }(window);

    规则就是,调用函数,放两个参数,第一个参数,是设计稿的宽度,第二个参数是px与rem的转换比例,通常会写100(因为好算);当然了,要把这段js代码最好封装在一个单独的js文件里,并且放在所有的css文件引入之前加载。

    其中 var n=t.clientWidth||320;n>720&&(n=720);

    的意思是:如果clientWidth的值获取不到,n就等于320,如果n>720成立就会执行n=720的操作

    M && N中,若M为假,则N不被执行;

    M||N中,若M为真,则N不被执行。

    上面这段js手机上在有表单的时候,在输入法弹出的时候会失灵

    代码一

    (function(win) {
                                if(!win.addEventListener) return;
                                var html = document.documentElement;
                
                                function setFont() {
                                    function setRem() {
                                        var cliWidth = html.clientWidth;
                                        var w = document.documentElement.clientWidth,
                                            h = document.documentElement.clientHeight;
                                        var val = 640;
                                        
                                        if(w >=640){
                                            cliWidth = 640;
                                        }
                //                        if(w > h) {
                //                            //横屏
                //                            val = 1334;
                //                        }
                                        html.style.fontSize = 100 * (cliWidth / val) + 'px';
                                    }
                                    setRem();
                                    setTimeout(function() {
                                        setRem();
                                    }, 300);
                
                                }
                                win.addEventListener('resize', setFont, false);
                                setFont();
                            })(window);

     

    代码二   

            

    //屏幕适应
    
            (function (win, doc) {
    
                if (!win.addEventListener) return;
    
                var html = document.documentElement;
    
                function setFont() {
    
                    var html = document.documentElement;
    
                    var cliWidth = html.clientWidth;
    
                    var k = 640;
    
                    if (cliWidth >= 640){
    
                      cliWidth = 640;
    
                    }
    
                   
    
                    html.style.fontSize = cliWidth / k * 100 + "px";
    
                }
    
                setFont();
    
                setTimeout(function () {
    
                    setFont();
    
                }, 300);
    
                doc.addEventListener('DOMContentLoaded', setFont, false);
    
                win.addEventListener('resize', setFont, false);
    
                win.addEventListener('load', setFont, false);
    
            })(window, document);
  • 相关阅读:
    《架构之美》读后感(二)
    《架构之美》读后感(一)
    《代码大全2》阅读笔记03
    《代码大全2》阅读笔记02
    《代码大全2》阅读笔记01
    学习进度报告(十四)
    软件方法阅读笔记03
    第二讲
    1.26 十讲第一讲
    1.23
  • 原文地址:https://www.cnblogs.com/zhouwq/p/9453547.html
Copyright © 2011-2022 走看看