Tôi có một chút jQuery chọn một hình ảnh ngẫu nhiên từ một thư mục và làm mờ nó trong một div trên mỗi lần tải trang. Vấn đề là div menu bên dưới hình ảnh nhảy lên không gian trống của hình ảnh trước khi hình ảnh mờ dần.jQuery: giữ lại kích thước div đáp ứng cho vùng chứa hình ảnh trước khi fadeIn
Cách tốt nhất để giữ hình ảnh div giữ nguyên chiều cao trước khi hình ảnh bị mờ dần là gì? CSS để "điền" div trước khi hình ảnh mờ dần? Hoặc tải một .jpg trống trước khi hình ảnh ngẫu nhiên mờ dần? (Tất cả các hình ảnh ngẫu nhiên có cùng kích thước 1000px chiều rộng x 250px chiều cao).
Tôi cần giữ lại sự phản hồi của thiết kế, vì vậy có thể giải pháp tốt nhất là tải trước một jpg trống và sau đó mờ dần trong hình ảnh ngẫu nhiên.
Tôi chưa bao gồm hình ảnh và chú thích mảng vì đơn giản, nhưng chức năng này kết quả đầu ra hình ảnh với lớp .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;
}
Đặt vùng chứa xung quanh hình ảnh với chiều cao cố định. Khi hình ảnh biến mất trong chiều cao thay đổi của nó sẽ không gây ra vấn đề dòng chảy. Các kích thước cố định của container nên ngăn chặn các vấn đề dòng chảy. – Lowkase
Cảm ơn, nhưng điều đó đã phá vỡ sự đáp ứng của thiết kế. – markratledge
Phản hồi ở đây là gì? Thẻ hình ảnh ở trên có kích thước được chỉ định trong đơn vị px tiềm ẩn (trong HTML). Các yếu tố bố trí đáp ứng thường được chỉ định bằng% hoặc em. Hình ảnh phải thay đổi như thế nào khi trình duyệt được thay đổi kích thước? –