我在这个问题上停留了一天多,在浏览了类似的帖子并尝试了他们的解决方案后,我仍然没有设法解决这个问题。
以下是我所讨论内容的示例: https://jsfiddle.net/Aorus/1c4xbpvr/7/
$(function() {
var isoGrid;
var carousel = $(".portfolio-item-slide");
var $container = $('.showcasegrid').imagesLoaded(function() {
$isoGrid = $container.isotope({
itemSelector: '.grid-item'
//layoutMode: 'fitRows'
});
// bind filter button click
$('.iso-filters-button-group').on('click', 'button', function() {
var filterValue = $(this).attr('data-filter');
// use filterFn if matches value
// filterValue = filterFns[filterValue] || filterValue;
$container.isotope({
filter: filterValue
});
});
// change is-checked class on buttons
$('.iso-button-group').each(function(i, buttonGroup) {
var $buttonGroup = $(buttonGroup);
$buttonGroup.on('click', 'button', function() {
$buttonGroup.find('.active').removeClass('active');
$(this).addClass('active');
});
});
// This runs whenever the isotope layout is resized.
$isoGrid.isotope('on', 'layoutComplete', function(isoInstance, laidOutItems) {
$(laidOutItems).each(function() {
$(this.element).find('.slick-list').css({
height: this.size.height
});
});
});
carousel.slick({
accessibility: false,
autoplay: true,
autoplaySpeed: 3000,
infinite: true,
speed: 300,
dots: true,
arrows: false,
fade: false,
adaptiveHeight: false,
onInit: function() {
// This runs after the slickgrid is first initialized.
this.$list.css('height', this.$slider.parents('.slide-container').outerHeight(true))
}
});
});
});
.showcasegrid {
min-height: 600px;
}
.grid-item {
position: relative;
float: left;
color: #262524;
}
.grid-item > * {
margin: 0;
padding: 0;
border-radius: 0 !important;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" rel="stylesheet"/>
<link href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://unpkg.com/isotope-layout@3/dist/isotope.pkgd.min.js"></script>
<script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>
<div class="container-fluid">
<div class="row my-4 justify-content-center">
<div class="col-12 ">
<div class="btn-group iso-button-group iso-filters-button-group" role="group" aria-label="Basic example">
<button type="button" class="btn btn-secondary active" data-filter="*">Show All</button>
<button type="button" class="btn btn-secondary" data-filter=".games">Games</button>
<button type="button" class="btn btn-secondary" data-filter=".design">Design</button>
<button type="button" class="btn btn-secondary" data-filter=".level-design">Level design</button>
<button type="button" class="btn btn-secondary" data-filter=".narrative-design">Narrative Design</button>
<button type="button" class="btn btn-secondary" data-filter=".programming">Programming</button>
<button type="button" class="btn btn-secondary" data-filter=".unreal-blueprints">Unreal Blueprints</button>
</div>
</div>
</div>
<div class="row my-4 justify-content-center">
<div class="col-12">
<div class="showcasegrid">
<article class="grid-item portfolio-item-53 col-3 games programming unreal-blueprints">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
</div>
</div>
<div class="portfolio-item-desc"><h5>Project 1</h5></div>
</article>
<article class="grid-item portfolio-item-55 col-3 games unreal-blueprints">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
</div>
</div>
<div class="portfolio-item-desc"><h5>Project 2</h5></div>
</article>
<article class="grid-item portfolio-item-57 col-3 games design level-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
</div>
</div>
<div class="portfolio-item-desc"><h5>Project 3</h5></div>
</article>
<article class="grid-item portfolio-item-59 col-3 design level-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
</div>
</div>
<div class="portfolio-item-desc"><h5>Project 4</h5></div>
</article>
<article class="grid-item portfolio-item-61 col-3 design narrative-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
</div>
</div>
<div class="portfolio-item-desc"><h5>Project 5</h5></div>
</article>
<article class="grid-item portfolio-item-63 col-3 design level-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
</div>
</div>
<div class="portfolio-item-desc"><h5>Project 6</h5></div>
</article>
<article class="grid-item portfolio-item-65 col-3 games design level-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
<div class="image"><img class="img-fluid" src="http://s14.postimg.org/3na88ng1d/default_profile_image.png" ></div>
</div>
</div>
<div class="portfolio-item-desc"><h5>Project 7</h5></div>
</article>
</div>
</div>
</div>
</div>
尝试快速过滤几次,一段时间后出现“1px 图像高度”问题,但在转换下一张幻灯片时该问题会自行修复。
我正在使用的插件:
光滑 - https://kenwheeler.github.io/slick/
同位素 - https://isotope.metafizzy.co/
Bootstrap - https://getbootstrap.com/docs/4.0/getting-started/introduction/
谁将成为我穿着 Shiny 盔甲的程序员,拯救我免受这个恼人的错误的困扰?
提前致谢!
最佳答案
因此,在 JSFidle 中进行更多尝试后,我成功解决了这个问题!
我做了什么:
- 从图像幻灯片中删除了 img-fluid 类。
- 添加了一种在发生过滤时暂停自动播放的方法 过滤转换完成后再次开始播放。
- 为多个容器添加了 100% 的宽度和高度。
我在问题中留下了旧的损坏版本(请参阅代码片段),可以在此处找到它的工作示例:https://jsfiddle.net/Aorus/1c4xbpvr/17/
$(function() {
var isoGrid;
var carousel = $(".portfolio-item-slide");
var $container = $('.showcasegrid').imagesLoaded(function() {
$isoGrid = $container.isotope({
itemSelector: '.grid-item',
layoutMode: 'fitRows'
});
// bind filter button click
$('.iso-filters-button-group').on('click', 'button', function() {
var filterValue = $(this).attr('data-filter');
// use filterFn if matches value
// filterValue = filterFns[filterValue] || filterValue;
carousel.slick('slickPause');
console.log('pause');
$container.isotope({
filter: filterValue
});
});
// change is-checked class on buttons
$('.iso-button-group').each(function(i, buttonGroup) {
var $buttonGroup = $(buttonGroup);
$buttonGroup.on('click', 'button', function() {
$buttonGroup.find('.active').removeClass('active');
$(this).addClass('active');
});
});
// This runs whenever the isotope layout is resized.
$isoGrid.isotope('on', 'layoutComplete', function(isoInstance, laidOutItems) {
$(laidOutItems).each(function() {
$(this.element).find('.slick-list').css({
height: this.size.height
});
});
});
carousel.slick({
accessibility: false,
autoplay: true,
autoplaySpeed: 3000,
infinite: true,
speed: 600,
dots: true,
arrows: false,
fade: false,
adaptiveHeight: true,
variableWidth: false
});
$container.on('layoutComplete', function(event, laidOutItems) {
carousel.slick('slickPlay');
console.log('play');
})
});
});
.showcasegrid {
//transition: all 0.35s ease-out;
min-height: 600px;
}
.grid-item {
position: relative;
float: left;
//height: 250px;
//padding: 10px;
color: #262524;
}
.grid-item > * {
margin: 0;
padding: 0;
border-radius: 0 !important;
}
.slide-container {
height: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.slick-track {
height: 100%;
}
.portfolio-item-slide {
min-width: 150px;
}
.slick-list {
width: 100% !important;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" rel="stylesheet"/>
<link href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://unpkg.com/isotope-layout@3/dist/isotope.pkgd.min.js"></script>
<script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>
<div class="container-fluid">
<div class="row my-4 justify-content-center">
<div class="col-12 ">
<div class="btn-group iso-button-group iso-filters-button-group" role="group" aria-label="Basic example">
<button type="button" class="btn btn-secondary active" data-filter="*">Show All</button>
<button type="button" class="btn btn-secondary" data-filter=".games">Games</button>
<button type="button" class="btn btn-secondary" data-filter=".design">Design</button>
<button type="button" class="btn btn-secondary" data-filter=".level-design">Level design</button>
<button type="button" class="btn btn-secondary" data-filter=".narrative-design">Narrative Design</button>
<button type="button" class="btn btn-secondary" data-filter=".programming">Programming</button>
<button type="button" class="btn btn-secondary" data-filter=".unreal-blueprints">Unreal Blueprints</button>
</div>
</div>
</div>
<div class="row my-4 justify-content-center">
<div class="col-12">
<div class="showcasegrid">
<article class="grid-item portfolio-item-53 col-3 games programming unreal-blueprints">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
</div>
</div>
<div class="portfolio-item-desc">
<h5>Project 1</h5></div>
</article>
<article class="grid-item portfolio-item-55 col-3 games unreal-blueprints">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
</div>
</div>
<div class="portfolio-item-desc">
<h5>Project 2</h5></div>
</article>
<article class="grid-item portfolio-item-57 col-3 games design level-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
</div>
</div>
<div class="portfolio-item-desc">
<h5>Project 3</h5></div>
</article>
<article class="grid-item portfolio-item-59 col-3 design level-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
</div>
</div>
<div class="portfolio-item-desc">
<h5>Project 4</h5></div>
</article>
<article class="grid-item portfolio-item-61 col-3 design narrative-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
</div>
</div>
<div class="portfolio-item-desc">
<h5>Project 5</h5></div>
</article>
<article class="grid-item portfolio-item-63 col-3 design level-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
</div>
</div>
<div class="portfolio-item-desc">
<h5>Project 6</h5></div>
</article>
<article class="grid-item portfolio-item-65 col-3 games design level-design">
<div class="slide-container">
<div class="portfolio-item-slide">
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
<div class="image"><img src="http://s14.postimg.org/3na88ng1d/default_profile_image.png"></div>
</div>
</div>
<div class="portfolio-item-desc">
<h5>Project 7</h5></div>
</article>
</div>
</div>
</div>
</div>
关于jquery - 当在同位素网格中使用带有自动播放功能的 Slick Carousel 时,过滤时图像幻灯片的高度有时会变为 1px。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48139429/