【问题标题】:Prevent video downloading on mobile / javascript media query width防止在移动/javascript媒体查询宽度上下载视频
【发布时间】:2017-01-25 18:18:58
【问题描述】:

我的网站有两种布局——一种用于移动设备,一种用于桌面。

我正在使用 Zurb Foundation,它在移动设备上隐藏桌面布局,反之亦然。

由于桌面布局包含视频,我希望尽可能阻止浏览器下载页面的该部分。

我可以像这样使用 JavaScript 查询吗

    if (screen.width >= 600) {

<div>Video goes here</div>

    }

这样做?这会起作用吗?这会阻止这部分页面在小于 600 像素的屏幕上下载吗?

【问题讨论】:

    标签: javascript html css video zurb-foundation


    【解决方案1】:

    如果您使用带有none 值的preload 属性,您的浏览器不应加载您的视频:

    <video id="myVideo" preload="none"></video>
    

    稍后在您的 js 中,您可以根据需要有条件地加载视频:

    if (screen.width >= 600) {
       var myVideo = document.getElementById('myVideo');
       myVideo.load();
       myVideo.play();
    }
    

    【讨论】:

    • 您认为有效的解决方案是从 html 中排除视频链接,而不是让 jQuery 条件脚本仅在屏幕宽度超过 600 像素时插入视频路径?
    • 这可能是一种有效的方法,但您必须对其进行测试,看看是否能得到您想要的。
    • 为什么 preload="none" 是多余的?如果屏幕小于 600 像素,则 preload 设置为“none”并且不加载视频,但如果大于则 js 告诉浏览器无论如何都要加载视频。正确与否?
    【解决方案2】:

    仅当屏幕width 等于或高于600px 时才加载视频,如下所示:

    if($(window).width() >= 600) {
        loadVid();
    }
    
    function loadVid() {
       video = '<video src="http://techslides.com/demos/sample-videos/small.mp4" controls></video>';
       $(".video").append(video);
    }
    

    ---> Working resizable Fiddle <---(在其他宽度下测试,首先调整大小,然后运行代码)

    【讨论】:

    • 谢谢!但是假设我的目标是 iPhone 7 并将断点设置为 750px。如果用户将手机旋转到水平方向会发生什么?那时不会提供视频吗?
    • 我会说它取决于用户加载页面时的屏幕宽度,如果在加载网站后完成旋转,它应该在那里。此外,在这种情况下,您可以只调整 jQuery 中的断点值以覆盖横向,或者您可以通过用户代理定位,但考虑到您必须包含大多数移动浏览器代理,这将更加复杂。
    • 我正在尝试上面的代码: if($(window).width() > 750) { loadVid1(); } function loadVid1() { video1 = '
    • 您的 php 结束标签 ; ?&gt; 上有一个空格。在这里工作正常:jsfiddle.net/Syden/ozeuoLtp/3
    • 还是不行!?我认为这可能与在引号内使用引号有关,但这也不能解决它!?
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    相关资源
    最近更新 更多