So I have a following script where the logo file "logo-sticky.png" appears instead of file "logo.png" as soon as user scrolls. I broke my head trying to find a solution of how to get the retina-ready files for my images.
Would appreciate any help!
$(window).scroll(function() {
if($(this).scrollTop() > 50) /*height in pixels when the navbar becomes non opaque*/
{
$('.sticky-navbar').addClass('sticky');
} else {
$('.sticky-navbar').removeClass('sticky');
}
});
var navbarImg = $('.navbar-brand > img')
navbarImg.data('original', navbarImg.attr('src'))
$(window).scroll(function() {
var stickyNav = $('.sticky-navbar');
var isSticky = $(this).scrollTop() > 50;
stickyNav.toggleClass('sticky', isSticky);
navbarImg.attr('src', navbarImg.data(isSticky ? 'sticky' : 'original'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<nav class="navbar navbar-inverse navbar-fixed-top sticky-navbar hideme visible animated fadeInDown full-visible">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<i class="fa fa-bars" aria-hidden="true"></i>
</button>
<a class="navbar-brand" href="index.html">
<img src="assets/images/logo.png" alt="" data-sticky="assets/images/logo-sticky.png" />
</a>
</div>
</div>
</nav>
from How to get a retina-ready image with a data-attribute?
No comments:
Post a Comment