Rails 4 で Unify から石積みのブログ ビューを再作成しようとしています。
私はテーマを購入し、アプリケーション内に最新の imagesLoaded および Masonry ファイルを含めました (bower-rails を使用)。
- 組積造パッケージ 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 コードをコピーして同じ JS ファイルと CSS ファイルを含めると、同じ問題が発生するため、私の HTML コードは問題ないようです。
- 「.grid-boxes-quote」ボックスの幅は、他のグリッド ボックスと同じではありません。すべてのボックスに「.grid-boxes-in」クラスがあるため、すべて同じである必要があるため、これは奇妙です。https://jsfiddle.net/sdynfq83/embedded/result/
columnWidth コードを削除し、それを固定数 (300) に置き換えて + grid-boxes-in に幅を追加すると、うまくいくようです。画像のサイズが正しくないため、これは私が望んでいるものではありません。
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
});
});
});
js フィドル: http://jsfiddle.net/8c0r06a6/2/
テーマ自体は、古いバージョンの石積みを提供します。コードが機能しているようです。画像は重なり続けます (これは、ウィンドウのサイズを変更または更新することで修正できます)。
ただし、bower を使用してこれらのファイルを簡単に更新できるように、ロードされた石積みと画像の最新バージョンに更新したいと考えています。また、すべての最新バージョンを使用すると、スクリーンショット 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.が「はい」の場合 => 画像が互いに重ならないようにコードを修正するにはどうすればよいですか?
- 1. が「いいえ」の場合 => スクリーンショット 2 と 3 の重複する画像と背景のにじみがなくなるようにコードを修正するにはどうすればよいですか?