magnusson banner DE - responsive img swapper version

remember DE likes jQuery and not $

by ian_smithz

HTML

<link rel="stylesheet" href="https://www.screwfix.de/skin/frontend/screwfix/default/css/styles.css">
<!-- 

#######################################

  -- Updated breakpoints to work with DE GRID
 
  -- Mobile background image needs to be wider
  
#######################################

-->


<div class="magnusson-brand-cat wrp">

    <div class="inner">

        <div class="full_width_banner main-header">
            <div class="row">
                <div class="small-12">
                    <div class="banner_content">
                        <div class="magnusson_logo">
                            <div class="mn_head">
                                <img data-alt="Magnusson Logo" src="https://www.screwfix.de/media/wysiwyg/landingpages/magnusson/magnusson_header_logo_lg.png">
                            </div>
                        </div>
                    </div>
                    <div class="full_width_wrp">
                        <div class="magnusson_main banner-mg-wrap">

                            <img data-src-small="//www.screwfix.com/images/general/assets/gfx/magnusson_logo_sm.png" data-src-medium="//www.screwfix.com/images/general/assets/gfx/magnusson_header_md.png" data-src-large="//www.screwfix.com/images/general/assets/gfx/magnusson_header_lg.png"
                                class="swap" data-alt="Bosch Range" src="//www.screwfix.com/images/general/assets/gfx/magnusson_header_lg.png">



                        </div>

                    </div>
                </div>
            </div>
        </div>

    </div>

</div>

<script>
    // document.addEventListener("DOMContentLoaded", function() {

    var resizeTimer;

    var resizeFunction = function() {

        var winWidth = jQuery(window).width();
        var innerWidth = jQuery(".wrp .inner").width();


        jQuery(".full_width_wrp").css("width", winWidth);
        jQuery(".full_width_wrp").css("left", -(winWidth - innerWidth) / 2);

    }

    jQuery(window).resize(function()...

CSS

.wrp .inner {
    margin: 0 auto;
    max-width: 1148px;
    padding: 0 4px;
}

.magnusson-brand-cat .full_width_wrp {
    background: #000;
}

.magnusson-brand-cat .full_width_banner .banner_content .mn_head {
    color: #fff;
    padding: 0 0 0 25px;
}

.banner-mg-wrap {
    height: 376px;
    overflow: hidden;
    margin-bottom: 12px;
}

.banner-mg-wrap img {
    height: 376px;
    left: 50%;
    margin-left: -574px;
    position: absolute;
    max-width: none;
}

/* desktop */

@media screen and (min-width: 1025px) {
    .magnusson-brand-cat .full_width_banner .banner_content {
        position: absolute;
        z-index: 1;
        padding: 0px 15px 20px 20px;
        min-height: 180px;
        margin-left: -600px;
    }
    .magnusson-brand-cat .full_width_banner .full_width_wrp {
        position: relative;
        text-align: center;
        /*padding: 0 0.6em;*/
    }
    .magnusson-brand-cat .banner-mg-wrap {
        height: 296px;
        margin-bottom: 0px;
    }
    .magnusson-brand-cat .banner-mg-wrap img {
        height: 313px;
        z-index: 2;
    }
}

/* tablet */

@media only screen and (max-width: 1024px) and (min-width: 768px) {
    .banner-mg-wrap img {
        margin-left: -512px;
    }
    .magnusson-brand-cat .banner-mg-wrap {
        height: 228px;
        margin-bottom: 0px;
    }
    .magnusson-brand-cat .banner-mg-wrap img {
        height: 260px;
        position: relative;
        z-index: 2;
        left: 365px;
    }
    .magnusson-brand-cat .full_width_banner .full_width_wrp {
        position: relative;
        text-align: center;
    }
    .magnusson-brand-cat .full_width_banner .banner_content {
        position: absolute;
        z-index: 1;
        left: 0;
    }
    .magnusson-brand-cat .full_width_banner .banner_content .mn_head {
        padding: 0 0 0 50px;
    }
    .magnusson-brand-cat .magnusson_logo {
        margin-left: -420px;
    }
    .magnusson-brand-cat .magnusson_logo img {
        width: 845px;
   ...

JavaScript

var swapImg = function() {
    var imgs = jQuery('img.swap');
    var bw = jQuery('body').innerWidth();

    imgs.each(function() {

        var imgNameSmall = jQuery(this).data('src-small');
        var imgNameMedium = jQuery(this).data('src-medium');
        var imgNameLarge = jQuery(this).data('src-large');

        if (bw <= 767) {
            if (imgNameSmall) {
                jQuery(this).attr('src', imgNameSmall);
            } else if (imgNameMedium) {
                jQuery(this).attr('src', imgNameMedium);
            } else {
                jQuery(this).attr('src', imgNameLarge);
            }
        } else if (bw > 767 && bw < 1025) {
            if (imgNameMedium) {
                jQuery(this).attr('src', imgNameMedium);
            } else {
                jQuery(this).attr('src', imgNameLarge);
            }
        } else {
            jQuery(this).attr('src', imgNameLarge);
        }
    });
};


jQuery(document).ready(function() {
    swapImg();
});

jQuery(window).on('resize', swapImg);