Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.04.2012, 15:05
Новичок на форуме
Отправить личное сообщение для Novozar Посмотреть профиль Найти все сообщения от Novozar
 
Регистрация: 26.04.2012
Сообщений: 4

Как распределить текстовку по 3 блокам?
Помогите найти путь решения.
Есть большой кусок сплошного текста, его необходимо разбить на три блока, высота блоков должна быть постоянной. Текст без разметок, вариант с разметками в тексте не подходит, так как надо будет использовать разные тексты разной длины и шрифтов, но при этом блоки должны основаться постоянной высоты и ширины.
Пример как должно быть на рисунке.
http://www.imagepost.ru/?v=1rw_16.JPG
Я мало что понимаю в javascript, натолкните в каком направлении рыть или может есть готовое решение?

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 26.04.2012, 15:32
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

CSS3 могёт

.text_demoBlock {
padding-bottom:20px; /*отступ снизу*/
width:100%; /*указываем общую ширину блока с колонками*/
text-align:justify; /*выравнивание текста внутри колонок*/
column-count: 3; /*количество колонок, на которое хотим разбить текст*/
-moz-column-count: 3; /*для мозилы*/
-webkit-column-count: 3; /*для webkit браузеров*/
сolumn-gap: 40px; /*отступ между колонками*/
-moz-column-gap: 40px;
-webkit-column-gap: 40px;
column-rule: 1px solid #000; /*если требуется по дизайну, разделяем колонки линией*/
-moz-column-rule: 1px solid #000;
-webkit-column-rule: 1px solid #000;
}

jQuery
http://welcome.totheinter.net/columnizer-jquery-plugin/
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #3 (permalink)  
Старый 26.04.2012, 15:44
Новичок на форуме
Отправить личное сообщение для Novozar Посмотреть профиль Найти все сообщения от Novozar
 
Регистрация: 26.04.2012
Сообщений: 4

DjDiablo, к сожалению этот вариант не подходит. Я уже это пробовал. Дело в том что в этом варианте текст делится на ровные 3 части и соответственно высота блоков всегда разная в зависимости от размера текста. Мне же необходимо что бы высота и ширина блоков всегда оставалась постоянной 200*300 каждый блок. Если остается место после заполнение то оно должно быть пустым, как на рисунке. http://www.imagepost.ru/?v=1rw_16.JPG
Ответить с цитированием
  #4 (permalink)  
Старый 26.04.2012, 16:55
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Попробуйте взять алгоритм из плагина за основу.
Я бегло просмотрел код. Они копируют элементы в контейнер пока у него непоявится скроллинг, потом начинают копирывать в другой контейнер. Вся хитрость в том как распорядится последним элементом который невлез в контейнер.
Дальше вникайте сами.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 26.04.2012 в 16:59.
Ответить с цитированием
  #5 (permalink)  
Старый 26.04.2012, 17:03
Новичок на форуме
Отправить личное сообщение для Novozar Посмотреть профиль Найти все сообщения от Novozar
 
Регистрация: 26.04.2012
Сообщений: 4

Спасибо. А не подскажите как программно узнать высоту этих блоков?
Ответить с цитированием
  #6 (permalink)  
Старый 26.04.2012, 17:33
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

вот один из фрагмент кода.
while($parentColumn.height() < height && oText.length){
     //пока высота колумна меньше максимальной продолжаем копирывание 
}
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #7 (permalink)  
Старый 26.04.2012, 17:40
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от Novozar
А не подскажите как программно узнать высоту этих блоков?
element.offsetHeight
Ответить с цитированием
  #8 (permalink)  
Старый 26.04.2012, 17:56
Новичок на форуме
Отправить личное сообщение для Novozar Посмотреть профиль Найти все сообщения от Novozar
 
Регистрация: 26.04.2012
Сообщений: 4

Вроде получилось. Хотел уже танцы с бубном устраивать, высчитывая строки и добавляя <br> оказалось всё гораздо проще. Достаточно было к коду который предложил DjDiablo добавьте в стил height:300px; и всё стало ровно и красиво. Вот : http://www.imagepost.ru/?v=1bf_19.JPG.

Ещё бы узнать сколько пустых колонок осталось после заполнения текстом, есть способ?

Последний раз редактировалось Novozar, 26.04.2012 в 18:02.
Ответить с цитированием
  #9 (permalink)  
Старый 27.04.2012, 09:59
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Пример, если все колумны емеют класс collumn

var pusto=0;
$('.column').each(function(){
       if ($(this).html()=="") pusto++;
});
alert("пустые "+pusto+ " колонок");
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 27.04.2012 в 10:08.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47
Как задать двум блокам одинаковую длину? Squ1bble jQuery 1 06.02.2012 18:02
Как отловить обратное событие "click" ? jsuse Общие вопросы Javascript 2 18.01.2012 00:16
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56