Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определить изменение размера td средствами js, определить изменение размера td средства 
:(
    Опции темы
fregs
Дата 21.3.2005, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1




имею ячейку таблицы фиксированного размера
<td width="183" height="186">

если текст не помещается в ячейке, то она автоматом увеличится...

и вот вопрос...
Можно ли средствами javascript определить, что текст не поместился в этой ячейке?
PM MAIL WWW   Вверх
Aliance
Дата 21.3.2005, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



А это нужно? Вообще, она автоматом будет увеличиваться. Плюс еще есть свойства overflow и clip
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 21.3.2005, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Посмотри тут


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
fregs
Дата 21.3.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



Aliance,Lamer George

ну свойства оверфлоу и клип кажись не действуют для таблицы...
а вот воткнув внутрь div

не совсем то, но вывело меня на правильную мысль smile
пасиб
PM MAIL WWW   Вверх
fregs
Дата 21.3.2005, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



Aliance

вдогонку...
что она автоматом будет увеличиваться я отлично понимаю...

вот это то и не устраивает...
идиот дизайнер... вогнал новости , по определению неизвестного размера, в фиксированную ячейку... соответственно дизайн расползается...

в общем то и скроллинг не очень смотриться...

думаю ... как определить сколько текста не поместилось...
и соответственно изменить его до нужных размеров

PM MAIL WWW   Вверх
Aliance
Дата 21.3.2005, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Не понимаю. У мен сайт на таблицах построен - все прекрасно работает. Кидай код. Только это уже в верстку...
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 21.3.2005, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



fregs если размеры ячейки были заданны стилями, то их можно прочесть в ячейка.style.(width|height). Иначе в аттрибутах. Реальные же лежат в offset(Width|Height) и в currentStyle(под ИЕ). Поэкспериментируй:
Код
<table>
<tr><td id="test" width="10">sfjsalkfjsdalfk;jsalkfjsalfjsa;lfjsa;klfjsd;alkfjdklsajfslkd;j</td></tr>
</table>
<br />
<script type="text/javascript">
<!--
function w(s) { document.write(s+"<br />\n"); }
function v(vl) { return (vl!="")? "<b>"+vl+"</b>": "<b style='color: red'>empty</b>"; }

var td=document.getElementById("test");
w("DOM1 width: "+v(td.width));
w("attribute: "+v(td.getAttribute("width")));
w("style: "+v(td.style.width));
w("offset: "+v(td.offsetWidth));
w("scroll: "+v(td.scrollWidth));
//-->
</script>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
fregs
Дата 22.3.2005, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



Sardar

угу....
ну у меня оно растет в высоту, но не суть...

DOM1 height: 186
attribute: 186
style: empty
offset: 325
scroll: 325

я в ЖС не силен, поэтому не серчайте за нескромный вопрос...
а удастся ли изменить текст в td, без обновления страницы?

лишнюю часть текста приблизительно удается вычислить, а значит ее можно будет вырезать и вставить в конце, что то вроде "подробнее..."
PM MAIL WWW   Вверх
fregs
Дата 22.3.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



сорри за НБ вопрос...
сначала спросил потом полазил и написал...
Код

if (td.scrollHeight > td.height){document.getElementById('test').innerHTML = 'text'; }

PM MAIL WWW   Вверх
fregs
Дата 22.3.2005, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



итак окончательно:
Код

<script type="text/javascript">
<!--

function sub_text(){
  var s_text = document.getElementById('test').innerHTML;
    var s_add = ' ...<div style="text-align:right ; padding-right: 5px"><a style="FONT-WEIGHT: bold; color:#FF7927;" href="archive.php5"> далее &gt;&gt; </a><div>';
  i_max = Math.round(s_text.length * (td.height/td.scrollHeight));
  s_text = s_text.substring(0, i_max - 60); // запас под div
  i_sep = s_text.lastIndexOf(' ');
  s_text = s_text.substring(0, i_sep); 
    s_text = s_text + s_add;
  document.getElementById('test').innerHTML = s_text;
}

if (td.scrollHeight > td.height){
sub_text();
}
if (td.scrollHeight > td.height){
sub_text();
}
if (td.scrollHeight > td.height){
sub_text();
}

//-->
</script>


sub_text() повторил вызов три раза... чтобы нивелировать погрешность вычисления...
не хотел рекурсивно вызывать

и еще вопрос...
вся фишка в проверке td.scrollHeight > td.height

что лучше использовать, для переносимости на разных броузерах?
td.offsetHeight или td.scrollHeight?


PM MAIL WWW   Вверх
Aliance
Дата 22.3.2005, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Оба метода поддерживаются начиная с 4ой версии

Это сообщение отредактировал(а) Aliance - 22.3.2005, 11:47
PM MAIL WWW ICQ Skype   Вверх
fregs
Дата 22.3.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



Aliance

оба поддерживаются но файрефокс и Макстон дают разные значения
что настораживает

Файрефокс, Нетшкаф
DOM1 height: 186
attribute: 186
style: empty
offset: 186
scroll: 186

Макстон
DOM1 height: 186
attribute: 186
style: empty
offset: 186
scroll: 182

Опера 7 вообще отказалась парсить код
хм....

не любит innerHTML?

PM MAIL WWW   Вверх
fregs
Дата 22.3.2005, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



Цитата
Опера 7 вообще отказалась парсить код
хм....


после обновления страницы работает и в Опере...

все пасиб еще раз
PM MAIL WWW   Вверх
Sardar
Дата 23.3.2005, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(fregs @ 22.3.2005, 11:14)
оба поддерживаются но файрефокс и Макстон дают разные значения
что настораживает

Просто действительно количество пикселей в активном экране различное. Попробуй посмотреть размеры body в окошке изменяя размер, также вруби сайдбар и посмотри как изменилось smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.