因此,我有一个以下脚本,其中在用户滚动时立即显示徽标文件"logo-sticky.png"
而不是文件"logo.png"
。
我不知所措,试图找到一种解决方案,以获取图像的视网膜就绪文件。
不胜感激!
$(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>
答案 0 :(得分:5)
您可以在HTML中使用该属性,而不是使用JS。
在这种情况下,有多种解决方法。
在这种情况下,这只是经典的响应式样式。
<img src="logo-400.png"
srcset="logo-200.jpg 200w,
logo-400.jpg 400w,
logo-800.jpg 800w,
logo-1200.jpg 1200w"
data-sticky="assets/images/logo-sticky.png"
/>
在这里,我们还为浏览器提供了默认图像,然后他根据屏幕尺寸自动定义要拍摄的图像。
<img src="logo-1x.jpg"
srcset="logo-2x.jpg 2x,
logo-3x.jpg 3x"
data-sticky="assets/images/logo-sticky.png"
/>