|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
||||||
Изменить ширину ячеек одной таблицы, в зависимости от соответствующих ячеек в другой таблице12.10.2012, 11:44. Показов 13485. Ответов 21
Метки нет (Все метки)
День добрый.
Необходимо изменять ширину ячеек одной таблицы, в зависимости от соответствующих ячеек в другой таблице. Написал небольшую функцию, но результата никакого. Подскажите, пожалуйста, в какую сторону глядеть.
0
|
||||||
| 12.10.2012, 11:44 | |
|
Ответы с готовыми решениями:
21
Заполнение значением одной из нескольких ячеек в зависимости от переменной в одной из ячеек Перенос двух ячеек из одной строки таблицы, в одну ячейку другой таблицы. Перенос двух ячеек из одной строки таблицы, в одну ячейку другой таблицы. |
|
Заблокирован
|
|
| 12.10.2012, 12:04 | |
|
таблица - это такая штука, где ширину и высоту у одной ячейки менять никак не получится
при увеличении ширины одной ячейки увеличивается ширина всех ячеек столбца при увеличении высоты одной ячейки увеличивается высота всех ячеек строки с другой стороны, уменьшение ширины и высоты ячейки может, во-первых, не привести к изменению ширины/высоты столбца/строки, потому что минимальная ширина/высота ячеек определяется шириной/высотой их содержимого; во-вторых, бывает, что у текущей ячейки тоже нельзя уменьшить высоту/ширину, потому что она уже минимальна... так что задача ваша, как видите, совсем нетривиальна однако... есть и "плюсы" - увеличивать ширину всех ячеек столбца не надо, достаточным будет изменить ширину одной, другие ячейки столбца сами "подтянутся" аналогично и с высотой - менять её нужно только у одной ячейки строки ----- так что функцию вашу, без знания того - в какую сторону идёт изменение ширины (уменьшается ширина ячейки или увеличивается) - заценить трудно и вообще - я бы с такой задачей не заморачивался выделяете в первой таблице одну ячейку, а в другой из-за этого увеличивается ширина целого столбца одна ячейка и целый столбец... где тут логика?
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|||
| 12.10.2012, 12:16 [ТС] | |||
всё это делается для задания одинаковых размеров столбцов в плавающей шапке таблицы, и самой таблицы.
0
|
|||
|
Заблокирован
|
|
| 12.10.2012, 12:29 | |
|
ну это не так делается
проще всего: 1 - склонировать таблицу 2 - удалить у клона циклом все строки, кроме первой (которая шапка) 3 - а у самой таблицы удалить самую первую строку (шапку) 4 - сравнить циклом попарно ширину ячеек клона и ячеек второй строки (но теперь уже, после удаления шапки - первой) таблицы 5 - той ячейке, которая меньше, добавить ширину 6 - сделать клон плавающим всё! код набросать?
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
||
| 12.10.2012, 12:31 [ТС] | ||
но там таблицы как простыни длиной, надеюсь тормозить не будет и ещё шапка таблицы сложной структуры. в смысле с использованием colspan и rowspan
0
|
||
|
Заблокирован
|
||
| 12.10.2012, 12:46 | ||
|
надо тогда точно знать - какое количество строк в шапке оставлять и, соответственно, какое количество начальных строк из таблицы удалять ----- да нет, тормоза вовсе не будет: клонирование - оно нетормозное удаление строк (особо, если их много) - да, тормозит, и сильно однако, написав "удалить все строки, кроме первой" - я просто не стал детализировать из клонированной таблицы удалять следует все строки сразу -- clon.innerHTML = '' а потом из основной таблицы клонируется только шапка и приживляется в клон таблицы ----- в общем, рассказывайте - какой там у вас максимальный rowSpan в шапке?
0
|
||
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
||
| 12.10.2012, 12:51 [ТС] | ||
0
|
||
|
Заблокирован
|
|
| 12.10.2012, 12:53 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
| 12.10.2012, 12:59 [ТС] | |
|
да, строки всего 2. столбцы по 1, и по 3. количество столбцов может меняться
0
|
|
|
Заблокирован
|
||||||
| 13.10.2012, 09:54 | ||||||
|
мда... задачка в общем виде оказалась нетривиальной
приходится в шапке "перескакивать" со строки на строку, учитывая все возможные rowSpan'ы и colSpan'ы а если ещё добавить сюда возможные rowSpan'ы и colSpan'ы в первых строках тела таблицы, то вообще туши свет... сделать можно, конечно, но довольно трудоёмкое это дело ----- а не попробовать ли вам совсем иначе, без подбора ширины ячеек? простым помещением клона таблицы поверх существующей я тут набросал код не знаю уж, как он поведёт себя с вашими "простынями", попробуйте:
единственное, что может затормозить - это "перерисовка" таблицы внутри клона - сначала она делается чуть уже, затем возвращается к исходной ширине у меня в коде это строки ##43 и 44 но вообще-то эта перерисовка - она ещё в виртуале, клон ещё не приживлён - тормозить как бы не должно
0
|
||||||
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
| 15.10.2012, 09:49 [ТС] | |
|
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 15.10.2012, 10:04 | |
|
выложенный выше код, как он есть, работает нормально
ваш скриншот - это ваша попытка обработать этим скриптом свою таблицу?
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
||
| 15.10.2012, 10:17 [ТС] | ||
0
|
||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||||||
| 15.10.2012, 10:47 | ||||||
|
судя по наличию горизонтального скроллбара в вашем скриншоте, таблица у вас много шире, чем 300 пикселей, прописанные в коде выше
так? а выложенный код, наоборот, растягивает относительно узкую таблицу до ширины 300 пикселей вы вообще какую видимую ширину для контейнера планировали? не во всю ширину окна? уберите в стилях ширину width: 300px для #dv0 и width: 100% для #tb0 и скрипт без изменений будет обрабатывать и широкую таблицу, даже со свободной (не фиксированной) шириной контейнера с id="dv0" единственное - если у вас таблица шире окна браузера и появится горизонтальный скроллбар, то надо обрабатывать горизонтальный скролл вместо последних двух строк скрипта выше (где appendChild и закрывающая фигурная скобка) напишите:
0
|
||||||
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
||||||
| 15.10.2012, 16:21 [ТС] | ||||||
|
Клон внедряется в тело страницы уже после родителя. и если я цепляю функцию "плавания" на ID dv0 ? то и плавает вся родительская таблица.
Можно ли как-то сменить ID клона? Добавлено через 22 минуты Пардон, ID увидел, но: Клон внедряется в тело страницы уже после родителя. и если я цепляю функцию "плавания", то клонированная шапка в самом низу оказывается, а ф-я "плавания" подразумевает , что блок должен быть перед началом таблицы. Использует jquery.min.js v1.3.2
0
|
||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 15.10.2012, 19:39 | |
|
а куда плавать-то?
Не по теме: создавали впечатление вменяемого человека...
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
|
| 16.10.2012, 00:07 [ТС] | |
|
При прокрутке страницы шапка плывёт за видимой областью.
И я вполне нормален, в отличии от заказчика...
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 16.10.2012, 01:49 | |
|
0
|
|
|
139 / 137 / 66
Регистрация: 15.05.2012
Сообщений: 518
|
|
| 16.10.2012, 02:35 | |
|
ну а на div'ах таблицу сделать, а потом тянуть хоть одну, хоть выборочные...
0
|
|
|
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 11
|
||
| 16.10.2012, 10:31 [ТС] | ||
0
|
||
| 16.10.2012, 10:31 | |
|
Помогаю со студенческими работами здесь
20
Найти схожие позиции ячеек из одной таблицы в другой Изменение цвета ячеек и суммирование значений в оной таблице на основании данных другой таблицы
Как автоматически подстраивать ширину колонки TableView в зависимости от содержимого ячеек? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|