помогите добить меню
Всем привет... У меня такая проблемка,js я начал изучать недавно, вот пытался сделать простенькое меню. Задание вот какое
1) Требуется создать список <ul>ссылок<a> сослед.функциональностью: 1. При клике на ссылку все остальные сдвигаются в сторону. 2. При клике на другую ссылку сначала все возвращаются на исходную позицию, а затемсдвигаются относительно текущей, как в п. 1. 3. После клика на ссылке в ее текст добавляется в конец счетчик кликов (например,«Ссылка [2]»), а при каждом клике значение счетчика увеличивается. До первогоклика ссылка счетчика не имеет («Ссылка»). 4. После достижения порогового значения счетчика кликов (5) ссылка исчезает из списка. <script type="text/javascript"> $(function() { $('li').click(function() { var current = $(this); var id = current.attr('id'); var str = "#list"+ id; var number = parseInt($(str).text()); number = number +1; if (number <5) { $(str).html(number); $('li').each(function(){ $(this).css('margin-left','0'); }); $('li').each(function() { $(this).animate({margin:'0 0 0 30px'}, {duration:200}); }); current.animate({margin:'0'}, {duration:100}); } else { $(this).remove(); } }) }); </script> вот вроде получилось только вот проблема в том что -меню движется рывками нужно сделать чтобы передвигалось плавно. -и в начале при загрузке после ссылки показывается [0] нужно сделать чтобы только после нажатия на ссылку отображалось [1] |
Цитата:
http://javascript.ru/blog/Andrej-Par...mmnoy-animacii Цитата:
|
Чего то я не догоняю как это сделать. ерунда какая то получается насчет плавного передвижения.
setTimeout(function() { /* Тут изменение параметров */ if (/* условие срабатывания итерации */) setTimeout(arguments.callee, 0); }, 0); |
Цитата:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
div {
width: 50px;
height: 50px;
cursor: pointer;
border: 1px solid;
}
</style>
<script type="text/javascript">
function Go(Obj) {
var inc=10
var i=(Obj.style.width)? Obj.style.width: 50
i=parseInt(i)
if (i>=100) return
Obj.style.width=i+inc+'px'
setTimeout(function(){Go(Obj)},1)
}
</script>
</head>
<body>
<div onclick='Go(this)'>
</div>
</body>
</html>
Но ты используешь ЖиКвери... Т.ч. Х/з чего он у тебя "движется рывками"... |
С анимацией разобрался, но вот со вторым пунктом все еще нет, не могу сделать
-и в начале при загрузке после ссылки отображается [0], нужно сделать так чтобы индекс отображался только после нажатия на ссылку. [1] вроде прописываю ------------------- $(window).load(function{ $('#list + span').hide(1000)}); ---------------------------------------------------------------- <script type="text/javascript"> $(window).load(function{ $('#list + span').hide(1000)}); $(function() { $('li').click(function() { var current = $(this); var id = current.attr('id'); var str = "#list"+ id; var number = parseInt($(str).text()); number = number +1; if (number <5) { $(str).html(number); $('li').each(function(){ $(this).css('margin-left','0'); }); $('li').each(function() { $(this).animate({ width: "70%", marginLeft: "0.4in", fontSize: "1em", }, 900 ); }); current.animate({margin:'0'}, {duration:1000}); } else { $(this).remove(); } }) }); </script> меню просто отказывает реагировать. Заранее спасибо |
| Часовой пояс GMT +3, время: 21:46. |