Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2009, 21:32
popov654
 
Сообщений: n/a

Полоса прокрутки
В общем, есть две таблички: узкая слева и очень-очень длинная справа.
Задача такая: надо сделать, чтобы при горизонтальной прокрутке правая прокручивалась, а левая была зафиксирована, а при вертикальной прокрутке крутились обе. Помогите, пожалуйста, а то я не знаю, как такое можно сделать.
То есть, иными словами, можно ли сделать, чтобы при вертикальной прокрутке position левой таблицы из fixed временно превратить в absolute?
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2009, 01:19
Интересующийся
Отправить личное сообщение для Ilya Посмотреть профиль Найти все сообщения от Ilya
 
Регистрация: 09.01.2009
Сообщений: 14

Я не уверен, что правильно понял вопрос.
Может быть это.

<html>
<head>
<style type="text/css">
#tablica1 {
	background-color: #ff0000;
	height: 400px;
	left: 0;
	position: fixed;
	top: 0;
	width: 100px;
	z-index: 2;
}
#tablica2 {
	background-color: #0000ff;
	height: 1000px;
	left: 100px;
	position: absolute;
	top: 0;
	width: 1500px;
	z-index: 1;
}
</style>
<script type="text/javascript">
function fn1() {
var vr1 = document.getElementById("tablica1"); //Ссылка на объект
if(document.body.scrollTop > 0) { //Если вертикальная полоса прокрутки прокручена больше чем на 0 пикселей вниз 
	vr1.style.position = "absolute"; //Левая таблица становится абсолютно позиционируемой
	vr1.style.top = 0; //Координата оси y для левой таблицы равна нулю
	vr1.style.left = document.body.scrollLeft; //Координата оси x для левой таблицы равна тому расстоянию, насколько была прокручена горизонтальная полоса прокрутки
}
else { 
	vr1.style.position = "fixed"; //В противном случае левая таблица фиксирована
	vr1.style.top = 0;
	vr1.style.left = 0;
}
}
</script>
</head>
<body onscroll="fn1()">
<table id="tablica1"><tr><td>
</td></tr></table>
<table id="tablica2"><tr><td>
</td></tr></table>
</body>
</html>

Последний раз редактировалось Ilya, 10.01.2009 в 14:08.
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2009, 21:22
popov654
 
Сообщений: n/a

...
К сожалению, не работает. В общем, это странно. Код на мой взгляд абсолютно правильный, за исключением:
vr1.style.left = document.body.scrollLeft;
Это совсем не нужно. Координаты той таблицы, position которой мне надо изменить, должны всё время оставаться постоянными. А вторая и так крутится. Поэтому я попробовал второй раз без этой строчки. Но ничего не изменилось...:-(
Ответить с цитированием
  #4 (permalink)  
Старый 10.01.2009, 21:30
popov654
 
Сообщений: n/a

А вот и файл:
http://class2-09.com/sample.html
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение ширины полосы прокрутки Devoto Общие вопросы Javascript 3 07.07.2008 17:01