繁体   English   中英

如何将我的“桌面视图”html文件与我的“移动视图”jQuery移动文件相结合?

[英]How do I combine my “desktop view” html file with my “mobile view” jQuery mobile file?

为了详细说明我的问题,我设计了一个专门在桌面上查看的网站。 如果在移动设备上进行测试,它看起来不太好。 因此,我使用jQuery mobile为我的网站(包含所有相同的内容)制作了完全不同的布局(由于其简单性)。

我现在意识到可能有更好的方法来实现这一点,例如在我的CSS文件中实现移动视图,基于媒体查询,但这是我选择这样做的方式,并且更愿意坚持下去。

所以这是我的问题:

我想使用我的JavaScript文件来检测不同的屏幕大小,以便根据指定的屏幕宽度和高度显示桌面视图或移动视图。 截至目前,我的桌面视图和移动视图有两个不同的html文件,我知道这不好。

我不想要两个html文件,我想把两者结合起来! 这是我能够在.js文件中调用两个不同代码的唯一方法,对吗? 有谁知道如何做到这一点?

在我的移动视图文件中,我需要包含jQuery库。 没有这些,它将无法运作。 但是当我尝试在我的桌面视图文件中包含它时(因为我现在正在尝试组合这些文件),我只是单独测试了它,它完全弄乱了桌面上的视图。 我该如何解决这个问题? 除此之外,我假设我只是将代码与两个不同的代码分开,只要合并其余的代码,是吗?

例如,

    <div id="desktop"> ..... </div>  <!-- this is for desktop view -->

    <div id="mobile"> ..... </div> <!-- this is for mobile view -->

拜托,任何帮助都会非常感激。 我试过研究这个,但我找不到任何具体到足以回答我的问题。

这是我的桌面视图文件的开头:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="hwk5.css">
    <script type="text/javascript" src="hwk5.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

</head>
<body>

这是我的移动视图文件的开头:

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>

    <style>
        img.fullscreen {
            max-height:50%;
            max-width:50%;
        }
    </style>
</head>
<body>

正如我在评论中所说,您可以通过PHP检测移动浏览并相应地将用户重定向到桌面或移动网站,但如果您真的想用jQuery执行此操作,则可以。

您需要检查页面宽度onReady和onResize:

$(document).ready(function(){resize();});
$(window).resize(function(){resize();});

function resize()
{
    var mobileMaxWidth = 640; //Define this to whatever size you want
    if($(window).width() > mobileMaxWidth)
    {
        $("div#desktop").show();
        $("div#mobile").hide();
    }
    else
    {
        $("div#desktop").hide();
        $("div#mobile").show();
    }
}

的jsfiddle


至于jQuery弄乱你的桌面网站,你必须使用另一个DOM。 您是否正在导入MooTools或其他使用$流行DOM? 如果是这样,您需要将jQuery代码显式标记为jQuery("selector")...而不是$或使用jQuery.noConflict

有关更多信息,请参阅此帖子。

我建议你写两个单独的CSS文件...一个用于桌面和其他移动。 并根据当前屏幕大小使用javascript更改css文件。

要实现此目的,您可以使用此脚本

<script type="text/javascript">
    $(document).ready(function () {
        changecss();
    });
    $(window).resize(function () { changecss(); });
    function changecss() {
        var windowwidth = $(window).width();
        var windowheight = $(window).height();

        if (windowwidth >= 1024 && windowheight >= 768) {
            //alert('Screen size: 1024x768 or larger');
            $("link[rel=stylesheet]:not(:first)").attr({ href: "Style2.css" });
        }
        else {
            $("link[rel=stylesheet]:not(:first)").attr({ href: "Style1.css" });
        }
    }
</script>

HTML

<div>
The colour of this text will change.
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM