我試圖重新從統一Rails中4 http://htmlstream.com/preview/unify-v1.8/blog_masonry_3col.html動態columnWidth時造成的圖像疊砌體
我買的主題,包括我的應用程序中的最新imagesLoaded和砌體文件砌體博客視圖(使用bower-軌)。
- 砌體PACKAGED V3.3.2
- imagesLoaded PACKAGED V3.2.0
當與供給JS文件的所有圖像被堆疊在彼此的頂部上的主題使用。
$(document).ready(function(){
var $container = $('.grid-boxes');
var gutter = 30;
var min_width = 300;
$container.imagesLoaded(function(){
$container.masonry({
itemSelector : '.grid-boxes-in',
gutterWidth: gutter,
isAnimated: true,
columnWidth: function(containerWidth) {
var box_width = (((containerWidth - 2*gutter)/3) | 0) ;
if (box_width < min_width) {
box_width = (((containerWidth - gutter)/2) | 0);
}
if (box_width < min_width) {
box_width = containerWidth;
}
$('.grid-boxes-in').width(box_width);
return box_width;
}
});
});
});
見這個js小提琴:http://jsfiddle.net/sdynfq83/
我注意到以下幾點:
- 調整窗口大小或刷新不能解決問題,所以我想通了它不是一個圖像加載錯誤。我花了很長時間才弄明白這一點。
- 我的html代碼似乎沒問題,因爲如果我從主題本身複製HTML代碼幷包含相同的JS和CSS文件,我也有同樣的問題。
- 「.grid-boxes-quote」框的寬度與其他網格框的寬度不同。這很奇怪,因爲它們都應該是相同的,因爲所有的盒子都有「.grid-box-in」類。 https://jsfiddle.net/sdynfq83/embedded/result/
當拆除columnWidth時碼和通過一個固定數量的(300)替換它+添加寬度到電網盒式那麼它似乎工作。這不是我想要的,因爲圖像尺寸不再正確。
CSS
.blog_masonry_3col .grid-boxes-in {
padding: 0;
margin-bottom: 30px;
border: solid 1px #eee;
/* added width */
width: 300px;
}
JS
$(document).ready(function(){
var $container = $('.grid-boxes');
var gutter = 30;
var min_width = 300;
$container.imagesLoaded(function(){
$container.masonry({
itemSelector : '.grid-boxes-in',
gutterWidth: gutter,
isAnimated: true,
/*columnWidth: function(containerWidth) {
var box_width = (((containerWidth - 2*gutter)/3) | 0) ;
if (box_width < min_width) {
box_width = (((containerWidth - gutter)/2) | 0);
}
if (box_width < min_width) {
box_width = containerWidth;
}
$('.grid-boxes-in').width(box_width);
return box_width;
}*/
columnWidth: 300
});
});
});
爵士小提琴:http://jsfiddle.net/8c0r06a6/2/
本身提供的磚石舊版本的主題。其中的代碼似乎工作。圖像確實重疊(通過調整窗口大小或刷新窗口,可以修復此罐)。
但是我想更新到加載,所以我可以繼續使用涼亭輕鬆地更新這些文件磚石和圖像的最新版本。 我也希望使用最新版本的一切修復了截圖2中的重疊圖像。我有一個工作JS小提琴下面的舊代碼。
/**
* jQuery Masonry v2.1.05
* A dynamic layout plugin for jQuery
* The flip-side of CSS Floats
* http://masonry.desandro.com
*
* Licensed under the MIT license.
http://jsfiddle.net/ytLf3bue/1/
總結我有以下問題,請記住,我是一個開始愛好編碼器承擔,我沒有很多的JS經驗:
- 它是一個聰明的總是使用最新版本的Masonry和ImagesLoaded代碼的想法,還是應該堅持提供的文件?
- 如果1.是yes =>我該如何修復代碼,以便圖像不會疊加在eachother上?
- 如果1.是否=>如何修復代碼,以便截屏2和3中的重疊圖像和背景流血消失了?
看來你的小提琴的寬度仍然不正確。它只需要其父容器的整個寬度。如果我得到正確的輸出,它應該是一個像其他小提琴一樣的網格。此外,我正在使用imagesLoaded插件(由Masonry推薦)來檢測圖像是否已加載。 – Christoph
問題的一部分是,你的磚石選擇器是一個div。由於您沒有設置寬度或將其聲明爲內聯塊,因此它的計算寬度自然是容器的100%。 –