imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 16.03.2006, 19:37     # 1
GoodS
Newbie
 
Аватар для GoodS
 
Регистрация: 07.03.2006
Сообщения: 43

GoodS Путь к славе только начался
Навигация по таблице

Проблема в следующем:
Есть таблица примерно 50х30. Все столбцы и строки проименованы.
Из-за большого размера таблицы, когда просматриваешь правый-нижний край таблицы не видно заголовков строк и столбцов.
А нельзя ли сделать всё это дело в виде 3х фреймов.
1ый фрейм - названия столбцов, 2ой - название строк, 3ий - собственно таблица.
Причем, при прокрутке первых двух фреймов, должен прокручиваться и 3ий.
Такое вообще реально сделать?
GoodS вне форума  
Старый 16.03.2006, 20:14     # 2
InsaneX
::VIP::
 
Аватар для InsaneX
 
Регистрация: 15.12.2002
Адрес: Spain
Сообщения: 500

InsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX Гуру
_http://www.activewidgets.com/grid/ ili ishem v google po keyword'am "ajax table sortable table ajax grid"
__________________
hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
InsaneX вне форума  
Старый 16.03.2006, 21:44     # 3
GoodS
Newbie
 
Аватар для GoodS
 
Регистрация: 07.03.2006
Сообщения: 43

GoodS Путь к славе только начался
Спасибо, я просто сам хочу такую табличку сделать.
GoodS вне форума  
Старый 17.03.2006, 03:38     # 4
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
GoodS
Фреймы, имхо, в данном случае зло. Можешь посмотреть реализацию таблицы с вертикальной прокруткой и фиксированным заголовком здесь - Pure CSS Scrollable Table with Fixed Header. Не пробовал фиксировать еще и первую колонку, так что не уверен, что это реально - но можешь, отталкиваясь от приведенного кода, его уже попытаться доработать.

InsaneX
А Ajax-то тут при чем? Статика ж одна
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 21.03.2006, 12:16     # 5
GoodS
Newbie
 
Аватар для GoodS
 
Регистрация: 07.03.2006
Сообщения: 43

GoodS Путь к славе только начался
Вот что получилось в итоге:
Код HTML:
<style>td {font-family: verdana; font-size: 12px; border-width: 1px; border-style: solid; border-color: 5981A4;}
.tblcols {table-layout: fixed; border-collapse: collapse;}
.tblcols td {background-color: 5981A4; color: FFFFFF; width: 100px; }
.tblrows {border-collapse: collapse;}
.tblrows td {background-color: 5981A4; color: FFFFFF;}
.tbldata {table-layout: fixed; border-collapse: collapse;}
.tbldata td {width: 100px;}</style>
<script>
function scroll()
{
	document.getElementById('tblupright').style.pixelLeft=-document.getElementById('downright').scrollLeft;
	document.getElementById('tbldownleft').style.pixelTop=-document.getElementById('downright').scrollTop;
}
</script>
<div id='upleft' style='position: absolute; top: 10px; left: 10px; width: 50px'></div>
<div id='upright' style='position: absolute; top: 10px; left: 60px; width: 500; overflow-x: hidden; overflow-y: scroll'>
	<table class='tblcols' id='tblupright' style='position: relative; top: 0px; left: 0px'><tr>
<script>
for (i=0; i<20; i++) document.write('<td>'+i+'</td>');
</script></tr></table></div>
<div id='downleft' style='position: absolute; top: 28px; left: 10px; width: 50px; height: 300px; overflow-x: scroll; overflow-y: hidden; background-color: 5981A4'>
	<table class='tblrows' id='tbldownleft' style='position: relative; top: 0px; left: 0px'>
<script>
for (i=0; i<40; i++) document.write('<tr><td>'+i+'</td></tr>');
</script></table></div>
<div id='downright' onScroll='scroll()' style='position: absolute; top: 28px; left: 60px; width: 500; height: 300px; overflow: auto'>
	<table class='tbldata'>
<script>
for (i=0; i<40; i++) 
{
	document.write('<tr>');
	for (j=0; j<20; j++) document.write('<td>'+i+'.'+j+'</td>');
	document.write('</tr>');
}
</script></table></div>
Надо еще много доработать но смысл такой.
Тока в опере это не работает.
И еще хотелось бы узнать можно ли прокрутить соседние элементы div?
GoodS вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:43.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.