Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите как это сделано (https://javascript.ru/forum/misc/5256-podskazhite-kak-ehto-sdelano.html)

Петр 30.09.2009 13:16

Подскажите как это сделано
 
Вот сайтик http://logistic.oresco.ru/ тыкаешь на менюшку и он плавно смешает страницу. Причем если масштаб уменьшить, то видно что это как бы одна страница просто сдвигается. В какую сторону копать надо?

Kolyaj 30.09.2009 14:05

Цитата:

Сообщение от Петр
В какую сторону копать надо?

Вам непонятно как переместить элемент?

Петр 30.09.2009 14:16

Не особо, то есть по коду там сделано слои и они плавно перемещаются на определенный интервал. Если можно пример какой нить?

Kolyaj 30.09.2009 14:41

Вы сами привели ссылку на пример.

B~Vladi 30.09.2009 18:19

В опере вёрстка едет:)

PepeL 30.09.2009 20:49

body{
margin:0px;
padding:0px; }

#Main {
position:relative;
width:right;
height:100%;
overflow:hidden;
background:url(Bg2.png);
background-repeat:repeat-y; }

.Panel {
position:absolute;
width:500px;
height:50px;
top:10px;
left:10px;
z-Index:3; }

.ImgBg {
position:absolute;
width:6900px;
top:-350px;
left:700px; }


var Start,Finish;
function But(finish){
 //Определяем положение горизонтального скроула и перводим в численное значение 
 Start = parseInt(Main.scrollLeft);
 //Задаем значение на которое должен сдвинуться документ внутри дива.
 Finish = finish;
//Запускаем следующую функцию
 setTimeout("Cycle()",0);}


function Cycle(){
//Задаем интервал смещения
 Step=100;
 MainLeft = parseInt(Main.scrollLeft);

//Если заданное значение необходимого положения больше чем в данный момент,то смещаем документ вправо
 if(Finish>Start){ 
  NewMainLeft = MainLeft+Step;
  //Если до конечного значения осталось меньше 100 px уменьшаем интервал 
  if(MainLeft>Finish-Step){ NewMainLeft = MainLeft+5;}
  Main.scrollLeft = NewMainLeft;
  var Timer = setTimeout("Cycle()",10);
  //Останавливаем функцию, если достигли нужного положения
  if(NewMainLeft>=Finish){ clearTimeout(Timer);} }

//Если заданное значение необходимого положения меньше чем в данный момент,то смещаем документ влево
else{
  NewMainLeft = MainLeft-Step;
  //Если до конечного значения осталось меньше 100 px уменьшаем интервал
  if(MainLeft<Finish+Step){ NewMainLeft = MainLeft-5;}
  Main.scrollLeft = NewMainLeft;
  var Timer = setTimeout("Cycle()",10);
  //Останавливаем функцию, если достигли нужного положения
  if(NewMainLeft<=Finish){ clearTimeout(Timer);}  }
 }


<table class="Panel">
<tr>
<td align="center"><input type="button" onmousedown="But(0)" value="Кнопка 1"></td>
<td align="center"><input type="button" onmousedown="But(2250)" value="Кнопка 2"></td>
<td align="center"><input type="button" onmousedown="But(4500)" value="Кнопка 3"></td>
<td align="center"><input type="button" onmousedown="But(6750)" value="Кнопка 4"></td>
</tr>
</table>

<div id="Main"><img src="Bg1.png" class="ImgBg"><div>

Скрипт, можно и покомпактнее сделать при желании...

Петр 01.10.2009 15:32

всем спасибо, все помогло

B~Vladi 01.10.2009 15:35

Такой сайт и на таблицах:-E

Kolyaj 01.10.2009 15:38

B~Vladi,
какая разница?

B~Vladi 01.10.2009 15:48

Цитата:

Сообщение от Kolyaj
какая разница?

аааагромная:)
Не настолько там сложный макет, чтобы прикручивать таблицы.


Часовой пояс GMT +3, время: 22:28.