![](/img/trans.png)
[英]jQuery .appendTo() [IE] - Images do not render unless I resize the browser window
[英]Images won't load in Flickity unless I resize the browser
我正在做一個項目,無論出於何種原因,我在 Flickity 幻燈片中的圖像只有在瀏覽器稍微調整大小時才會加載。 這是我的網站:/
我在 Flickity 中將 resize 設置為 true,所以我不確定這里的問題是什么。 任何幫助將不勝感激。
謝謝!
編輯:問題解決了!
如果其他人遇到這個問題並且 imagesLoaded 對您沒有影響,這是我的解決方案:
如果您碰巧在單擊按鈕的模式中加載此滑塊,則模式將從 display:none 更改為 display:block —— 這也會給您帶來需要調整屏幕大小以使輪播工作的錯誤。
要解決此問題,請在隱藏模式上使用 opacity: 0 而不是 display:none 。 單擊按鈕后,將模式更改為 opacity:1。
因為您需要在您的輕彈選項中添加 imagesLoaded 並包含加載的輕彈庫的圖像。
也許不透明度不適合您,如果您喜歡,請使用這種方式:
.hide{
transform: translateY(-1000em);
position: absolute;
}
.show{
transform: none;
position: relative;
}
使用 JQuery 或 JS 切換此類...
還要補充凱利的答案。 如果您在模態中有輕彈並且無法更改不透明度(即在我的情況下,我對畫廊顯示和移動導航使用相同的模型,切換每個功能的顯示)。 您還可以銷毀 flickity 變量並重新初始化。 例如在我的事件處理程序中,我有:
if (/* condition for closing */) {
event.preventDefault();
lightbox.classList.remove('visible');
flckty.destroy()
lightboxCar.style.display = "none";
}
else if (/* condition for opening carousel */) {
lightboxCar.style.display = "initial";
var pageImgs = document.querySelector("main").getElementsByTagName("img");
flckty = new Flickity( '#lightbox-carousel', {
// options
"cellAlign": 'center',
});
其中lightboxCar
是頁面上的輪播項目。
如果您仍然需要動態加載圖庫並且不透明度不是您項目的最佳選擇,請在加載后嘗試調整大小方法,或在您的打開事件處理程序中嘗試如下:
$('.open--modal').on( 'click', function() {
$carousel.flickity('resize');
});
我知道這個線程很舊,但我找到了一個更好的解決方案(我認為):而不是使用 opacity 使用帶有display:none
的 class ,然后你刪除了 class 使用setInterval(() => {swiper.resize()}, 1);
. 它在我的情況下完美運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.