Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрыть/отобразить строки таблицы без смещения текста
 
 автор: SS   (09.08.2013 в 07:33)   письмо автору
 
 

Есть большая таблица, в которой через одну строку текст скрывается или показывается, и таким образом, таблица разворачивается или сворачивается:

<script type="text/javascript">
$(document).ready(function()
{
    $('span#show').click(function()
    {
        $('td.g, td.l1').toggleClass('g l1');
        $("span#show").toggle();
    });
});
</script>


ПОДСКАЖИТЕ, можно ли сделать так, чтобы текст в таблице не улетал вверх или вниз, а разворачивался или сворачивался от первой видимой на экране строки, а не от начала таблицы?

  Ответить  
 
 автор: confirm   (09.08.2013 в 23:49)   письмо автору
 
   для: SS   (09.08.2013 в 07:33)
 

Во-первых, если скрываются строки таблицы, то почему вы не скрываете их (TR), а копаетесь в ячейках?
Во-вторых, если известно, что скрывается через одну, а значит четные или нечетные строки, то зачем ковыряться в атрибутах стилей, если jQuery имеет соответствующий селектор?
И в третьих - опишите вразумительно что конкретно требуется, без "летал", "улетает" и прочих авиационных атрибутов.

  Ответить  
 
 автор: SS   (14.08.2013 в 22:53)   письмо автору
 
   для: confirm   (09.08.2013 в 23:49)
 

Спасибо за реплику.
1. В половине случаев надо скрыть столбцы, в половине - строки, поэтому как универсальное решение - через TD. Но это не принципиально, в данном случае можно и через TR, если это упростит решение моей задачи.
2. Спасибо, я раньше этого не знал (не являюсь программистом).
3. Извините, а что тут непонятно? «улетает» - вполне литературный термин... При скрытии, например, нечетных строк происходит смещение всех видимых строк: допустим, я нахожусь в середине таблицы, на строке 30; при скрытии нечетных строк таблица уменьшается наполовину и я оказываюсь на 45-й строке - и наоборот, если нахожусь на 45-й, то при разворачивании скрытых строк первой видимой на экране становится 30-я. В этом и проблема. А надо, чтобы как была 30-я (в первом случае) или 45-я (во втором) - так она и оставалась. Примерно так.

  Ответить  
 
 автор: confirm   (15.08.2013 в 02:53)   письмо автору
 
   для: SS   (14.08.2013 в 22:53)
 

JavaScript работает с объектами на странице, то есть ее элементами, а значит обязательно должен уметь работать с коллекциями (наборами, то есть массивами) элементов. jQuery, это JS библиотека, и обязательно будет иметь метод позволяющий выбирать элементы в коллекции произвольно, включая и четные/нечетные.
Хотите использовать jQuery, значит решая что-то, ищите методы в ней, которые позволяют это решить оптимально, вполне возможно, что метод позволит вообще исключить ненужные "метки" у элементов, которые вы им прописываете ради обращения к ним.
Я понимаю, что такое "летает", и какова физика полета. Просто не надо устраивать авиашоу. )
Надо чтобы смещалось что-то, после смещения чего-то, значит и пишите что и как должно происходить. Например, если вас устраивает, чтобы таблица прокручивалась по верхнему своему краю к верхней границе окна при скрытии ее строк, то достаточно использовать js метод scrollIntoView():
document.getElementById(id_таблицы).scrollIntoView();
А можно анимировать такое смещение таблицы, используя тот же jQuery. Можно следить и за смещением строк таблицы, возвращая их в предыдущее положение.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования