Блоки "плиткой" при помощи "Msonry".
Добрый день, сразу хочу сказать, что я не знаю js, и по этому прошу вас о помощи. Я вот уже как второй день пытаюсь подключить себе "Masonry" и "imagesLoaded", но так как я это делаю впервые, мне это не поддается.
Сейчас у меня такой код: <script type="text/javascript" src="/js/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="/js/masonry.pkgd.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#page').masonry({ itemSelector: '#post', isResizable: true, }); }); </script> и #page { width: 100%; } #post { width: 23%; background: #fff; padding: 2%; margin: 15px; } В итоге, если в посте изображение, то они налезают друг на друга, на сайте плагина написано, что нужно подключить "imagesLoaded". К сожалению у меня не получается его подключить, так как нет знаний в этой области. Похоже, что там все предельно просто. Так что, если бы кто-то был столь любезен, и помог мне с этой незатейливой задачей (подключить "imagesLoaded"), я был бы крайне благодарен. http://masonry.desandro.com/ http://masonry.desandro.com/appendix.html#imagesloaded http://desandro.github.io/imagesloaded/ |
Alexander Transparent,
для блоков нельзя использовать один и тотже id Цитата:
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #page { width: 100%; } .post { width: 23%; background: #fff; padding: 2%; margin: 15px; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> <script src="http://masonry.desandro.com/masonry.pkgd.js"></script> <script src="http://desandro.github.io/imagesloaded/imagesloaded.pkgd.js"></script> <script type="text/javascript"> $(document).ready(function(){ var $container = $('#page').masonry({ itemSelector: '.post', isResizeBound: false });; $container.imagesLoaded( function() { $container.masonry(); }); }); </script> </head> <body> <div id="page"> <div class="post"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt=""></div> <div class="post"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt=""></div> <div class="post"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt=""></div> <div class="post"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt=""></div> <div class="post"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt=""></div> </div> </body> </html> |
Рони, огромное вам спасибо!
|
рони, может быть Вы мне еще немного поможете? как сделать, чтобы вся это красота не была анимированная? (все двигается и ездит, особенно когда изменяешь размер страницы)
|
Alexander Transparent, так скрипт для этого и предназначен подстраиваться под размер страницы -- на всякий случай запятая ненужна в 28 строке
да и вся строка изменена -- взял у вас на самом деле иная опция - сделайте тоже будет подстраивать блоки только 1 раз http://masonry.desandro.com/options.html#isresizebound |
рони, простите, я не совсем точно выразил свою мысль.
У меня сейчас как на этом сайте: kristianhammerstad.com/ - изменяешь размер и все блоки летят в новое пространство. Я бы хотел сделать как здесь: halcyon-theme.tumblr.com/ - изменяешь размер, и без всякой анимации все блоки уже подстроились под новые размеры. |
Alexander Transparent,
время анимации параметр transitionDuration попробуйте прочесть документацию { itemSelector: '.post', transitionDuration: '0' } |
рони, с этим кодом, при изменении окна, перед тем как новые посты займут новое пространство, происходит небольшая задержка в 0.5 - 1.0 секунды, только после этого они "прыгают" туда. Но мне и так пойдет^-^
Еще раз, большое Вам Спасибо, Вы мне очень помогли! |
Часовой пояс GMT +3, время: 17:53. |