Backstallch.js和缩略图大小可缩短加载时间

时间:2014-09-02 作者:kabr

我正在使用后拉伸。js将特色图像设置为全尺寸背景图像(根据this tutorial).

我想将这种方法与不同的缩略图大小结合起来,以减少移动设备上的加载时间。我想知道我怎样才能做到这一点。

我猜决定代码行的是以下函数。php:

wp_localize_script( \'backstretch-set\', \'BackStretchImg\', array( \'src\' => wp_get_attachment_url( get_post_thumbnail_id() ) ) );
我知道我可以将此代码与图像大小相结合,如

wp_get_attachment_url( get_post_thumbnail_id(), \'medium\' ) ) );
但我不知道如何将其与MediaQuery或if查询结合起来。你有什么想法吗?

1 个回复
SO网友:Johannes Pille

如果要使用MediaQuery,则必须有选择地对应用了不同图像的DOM元素进行dis和启用。

相反,我建议对同一元素有条件地应用不同的图像,即<body> 并将条件保持在JS内。

wp_localize_script 能够向脚本传递多个参数。我要说的是,传递几种图像大小,如下所示:

$script_parameters = array(
    \'small\' => wp_get_attachment_image_src( get_post_thumbnail_id(), array(150, 150)),
    \'medium\' => wp_get_attachment_image_src( get_post_thumbnail_id(), array(250, 250)),
    \'large\' => wp_get_attachment_image_src( get_post_thumbnail_id(), array(350, 350))
);

wp_localize_script(
    \'backstretch-set\',
    \'BackStretchImages\',
    $script_parameters
);
然后根据屏幕/视口宽度的条件展开JS:

jQuery(document).ready(function($) {

    var viewportWidth = $(window).width();
    // same as "document.documentElement.clientWidth" (vanilla JS)

    if ( 768 > viewportWidth ) {
        $("body").backstretch([BackStretchImages.small[0]],{duration:3000,fade:750});
    } else if ( 1024 > viewportWidth ) {
        $("body").backstretch([BackStretchImages.medium[0]],{duration:3000,fade:750});
    } else {
        $("body").backstretch([BackStretchImages.large[0]],{duration:3000,fade:750});
    }
});
可以根据需要添加任意多个大小,并根据需要调整视口边界。

结束

相关推荐

If is_single in functions.php

我希望删除wpautop筛选器仅对我博客中的帖子起作用。因为在某些页面,我需要autop,而在某些页面,我需要它不在那里。我使用以下规则,这是在我的主题函数中。php:remove_filter( \'the_content\', \'wpautop\' ); 因为我只想在博客上看到它,所以我在考虑if语句,我在Wordpress中搜索了条件标记页面,发现我可以使用is\\u single。但它不起作用。这是我现在使用的代码。if(is_single() ){ remove_f