我有一点 jQuery,它从文件夹中选择一个随机图像,并在每个页面加载时将其淡入到一个 div 中。问题是图像正下方的菜单 div 在图像淡入之前跳入图像的空白区域。
在图像淡入之前让图像 div 保持高度的最佳方法是什么?CSS在图像淡入之前“填充” div?或者在随机图像淡入之前加载空白.jpg?(所有随机图像的大小相同,1000 像素宽 x 250 像素高)。
我需要保留设计的响应能力,因此最好的解决方案可能是预加载空白 jpg 然后淡入随机图像。
为简单起见,我没有包含图像和标题数组,但此函数使用 .randomheader 类输出图像:
jQuery:
<script>
$(document).ready(function(){
$('.randomheader').randomImage();
});
</script>
<script>
(function($){
$.randomImage = {
defaults: {
path: '/fullpathhere/headerimages/',
myImages: ['image1.jpg' , 'image2.jpg' , 'image3.jpg'],
myCaptions: ['Caption 1' , 'Caption 2' , 'Caption 3']
}
}
$.fn.extend({
randomImage:function(config) {
var config = $.extend({}, $.randomImage.defaults, config);
return this.each(function() {
var imageNames = config.myImages;
var imageCaptions = config.myCaptions;
var imageNamesSize = imageNames.length;
var randomNumber = Math.floor(Math.random()*imageNamesSize);
var displayImage = imageNames[randomNumber];
var displayCaption = imageCaptions[randomNumber];
var fullPath = config.path + displayImage;
// Load the random image
$(this).attr( { src: fullPath, alt: displayImage }).fadeIn('slow');
// Load the caption
$('#caption').html(displayCaption).fadeIn('slow');
});
}
});
</script>
HTML:
<header id="masthead" class="site-header" role="banner">
<!-- random image loads in the div below -->
<img src="" class="randomheader" width="1000" height="250" alt="header image">
<div id="caption"></div>
<!-- The nav div below jumps up into the div above -->
<nav id="site-navigation" class="main-navigation" role="navigation">
// nav here
</nav>
CSS:
.randomheader {
margin-top: 24px;
margin-top: 1.714285714rem;
}
img.randomheader {
max-width: 100%;
height: auto;
display: none;
}