Javascript: анимирование контента

apachai
На сайте с 15.10.2009
Offline
57
462

Мозг уже скипел, все перепробовал, подскажите плиз. Надо в общем сделать так чтобы при нажатии на меню основной фон темнел и выводилось подменю и собственно контент. Дальше при переходах между меню див с контентом уезжает в сторону, меняется на другой контент и приезжает.

Скрипт

function cont(n,p){
$('#main3').css('left',"344px");

m_l=$('#content1').css('margin-left');
m_r=$('#content2').css('margin-left');
m_l=parseInt(m_l,10);
m_r=parseInt(m_r,10);

if (m_l==0) {
n_ml=m_l-1000;
n_mr=m_r-1000;
$.post('page.php',{id:n,name:p},function(data){
$('#main3').html(data);
$('#content1').animate({marginLeft:n_ml},{duration: 1000});
$('#content2').animate({marginLeft:n_mr},{duration: 1000});
});
}
else if (m_l==-1000){
n_mr=m_r+1000;
n_ml=m_l+1000;
$.post('page.php',{id:n,name:p},function(data){
$('#main3').html(data);
$('#content1').animate({marginLeft:n_ml},{duration: 1000});
$('#content2').animate({marginLeft:n_mr},{duration: 1000});
});
};
}

Обработчик

<?php
include 'admin/db.php';

$p = $_POST['id'];
$i = $_POST['name'];

$result = mysql_query("SELECT * FROM `page` WHERE `id`='$p'");

echo '<a id="closem" href="javascript:closem()"></a>';

if ($p =='1' or $i=='site'){
echo '<div id="sitemenu"><a href="javascript:cont(\'6\',\'site\')">О нас</a><a href="javascript:cont(\'7\',\'site\')">Сайт-визитка</a><a href="javascript:cont(\'8\',\'site\')">Интернет магазин</a><a href="javascript:cont(\'9\',\'site\')">Флеш сайт</a></div>';
}
if ($p =='2' or $i=='aid'){
echo '<div id="sitemenu"><a href="javascript:cont(\'10\',\'aid\')">Логотипы</a><a href="javascript:cont(\'11\',\'aid\')">Фирменный стиль</a></div>';
}
if ($p =='3' or $i=='consalt'){
echo '<div id="sitemenu"><a href="javascript:cont(\'12\',\'consalt\')">О нас</a><a href="javascript:cont(\'13\',\'consalt\')">Сайт-визитка</a><a href="javascript:cont(\'14\',\'consalt\')">Интернет магазин</a><a href="javascript:cont(\'15\',\'consalt\')">Флеш сайт</a></div>';
}
if ($p =='4' or $i=='sopr'){
echo '<div id="sitemenu"><a href="javascript:cont(\'16\',\'sopr\')">О нас</a><a href="javascript:cont(\'17\',\'sopr\')">Сайт-визитка</a><a href="javascript:cont(\'18\',\'sopr\')">Интернет магазин</a><a href="javascript:cont(\'19\',\'sopr\')">Флеш сайт</a></div>';
}
if ($p =='5' or $i=='prod'){
echo '<div id="sitemenu"><a href="javascript:cont(\'20\',\'prod\')">О нас</a><a href="javascript:cont(\'21\',\'prod\')">Сайт-визитка</a><a href="javascript:cont(\'22\',\'prod\')">Интернет магазин</a><a href="javascript:cont(\'23\',\'prod\')">Флеш сайт</a></div>';
}

while ($res=mysql_fetch_array($result)) {
echo '<div id="content1"><h3>'.$res['title'].'</h3><p>'.$res['content'].'</p></div><div id="content2"><h3>'.$res['title'].'</h3><p>'.$res['content'].'</p></div>';
};
?>

Часть кода страницы:

<div id="main3">
<div id="content1"></div>
<div id="content2"></div>
</div>

КСС

#content1 {
width: 551px;
min-height: 340;
z-index: 9;
color: #fff;
margin-left: 0px;
position: absolute;

}

#content2{
width: 551px;
min-height: 340;
z-index: 9;
color: #fff;
margin-left: 1000px;
position: absolute;
}

Скрипт уже переделывал на сто раз, сейчас он полурабочий. У меня все полностью работает, но только если подменю будет уезжать и меняться вместе с контентом, а так не надо.

Я явно чего то не знаю. По логике при клике один див должен перемещаться влево, второй вправо, а при втором клике наоборот. Но они так не делают, только в одну сторону перемещаются, потом значения меняются и опять в ту же сторону.

Может кто помочь?

anton831
На сайте с 25.05.2011
Offline
71
#1

Не знаю насчет скрипта, но с таким обработчиком, у вас рано или поздно базу SQL сломают...

apachai
На сайте с 15.10.2009
Offline
57
#2
anton831:
Не знаю насчет скрипта, но с таким обработчиком, у вас рано или поздно базу SQL сломают...

Кто меня на локалхосте то сломает?)))

anton831
На сайте с 25.05.2011
Offline
71
#3
apachai:
Кто меня на локалхосте то сломает?)))

Ну вы же его выложите когда нибудь))

Из практики могу сказать, что лучше сразу делать все как надо, так как потом, о такой "мелочи" как обработка переменных, экранирование кавычек и т.д, просто забывается.

apachai
На сайте с 15.10.2009
Offline
57
#4
anton831:
Ну вы же его выложите когда нибудь))
Из практики могу сказать, что лучше сразу делать все как надо, так как потом, о такой "мелочи" как обработка переменных, экранирование кавычек и т.д, просто забывается.

мне не дадут забыть;)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий