• 仿站,如何让手机和PC,两个页面,融合成一个响应式页面


    也就是2合1

    具体怎么做呢?

    本质的要求是

    1.pc和M加载不同的css和js
    2.pc和M展现不同的html

    有一篇文章是这样的


    他提供了三种方法
    1.给link标签,加上id,获取这个id元素,修改link的css属性。

    <link rel="stylesheet" type="text/css" id="links" href="../css/m_wuqinglan.css"/>
            <script type="text/javascript">
                window.onload=function(){ 
                    var sc=document.getElementById("links"); 
                        if(window.screen.width>1024) //获取屏幕的的宽度 
                        { 
                            sc.setAttribute("href","../css/pc_wuqinglan.css"); //电脑
                        } 
                        else{ 
                            sc.setAttribute("href","../css/m_wuqinglan.css"); //手机
                        } 
                }
            </script>
    

    2.在link中增加media属性,根据media属性,进行加载不同的css,会随着你的拖动窗口大小而执行

    //其中 media 是媒体查询的范围,当最大宽度是1200,这里就是手机平板一下的尺寸 加载手机css ,反之电脑css
    <link rel="stylesheet" type="text/css" href="../css/m_wuqinglan.css" media="screen and (max-1200px)"/>
    <link rel="stylesheet" type="text/css" href="../css/pc_wuqinglan.css" media="screen and (min-1201px)"/>
    

    3.直接在css中写媒体查询

    直接媒体查询然后写样式
    @media only screen and (max- 1024px) {
        .div1{
            50%;
        }
        .div2{
            50%;
        }
        .div3 {
            50%;
        }
    }
    
    @media only screen and (min- 1024px) {
        .div1{
            100%;
        }
        .div2{
            100%;
        }
        .div3 {
            100%;
        }
    }
    当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。
    

    显然,css的加载我们解决了,那js和html呢

    OK 现在实现,不同的页面尺寸加载不同的js

    1.根绝屏幕尺寸,加载不同的js

    <script type="text/javascript">  
    // 根据屏幕尺寸  
    if (screen && screen.width > 480) {  
    document.write('<script type="text/javascript" charset="utf-8" src="123.js"></script>');  
    }  
      
    // userAgent判断  
    if( /Android|webOS|iPhone|iPod|iPad|BlackBerry/i.test(navigator.userAgent)){  
    document.write('<script type="text/javascript" charset="utf-8" src="123.js"></script>');  
    }  
    </script>  
    

    2.根据不同的手机useagent加载不同的js

    <script type="text/javascript">  
    function browserRedirect() {  
    var sUserAgent = navigator.userAgent.toLowerCase();  
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";  
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";  
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";  
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";  
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";  
    var bIsAndroid = sUserAgent.match(/android/i) == "android";  
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";  
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";  
    // document.writeln("您的浏览设备为:");  
    if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {  
      
    // alert("手机浏览!");  
      
    document.write('<script type="text/javascript" charset="utf-8" src="123.js"></script>');  
    } else {  
      
    // alert("PC浏览!");  
    document.write('<script type="text/javascript" charset="utf-8" src="123.js"></script>');  
    }  
    }  
    browserRedirect();  
    </script>  
    

    如何在pc和手机,呈现不同的html

    1.如果使用响应式,设置display:none。难免会出现冗余代码。
    2.不使用响应式的方法,有没有呢?

    除非使用SPA单页写法,否则,只能通过display:none实现

    最终已经实现:代码打包如下,点击下载*
    https://files.cnblogs.com/files/cn-oldboy/JS根据不同的宽度,实现不同的jscssmeta和html展示.zip

  • 相关阅读:
    alpha冲刺3
    alpha冲刺2
    alpha冲刺1
    软工第七次作业
    软工第八次作业
    软工第六次作业
    软工第五次作业
    软工第四次作业
    Alpha冲刺一 (2/10)
    Alpha冲刺一(1/10)
  • 原文地址:https://www.cnblogs.com/cn-oldboy/p/13052699.html
Copyright © 2020-2023  润新知