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);