Анимированный tab или галерея картинок
день добрый!
не судите строго, я всего 4 недели изучаю HTML, CSS и javascript. подскажите плз, как оптимизировать мой скрипт?? в моем случае всё работает как я и хотел, но не знаю как избавиться от повторения сценария.....вот коды Код:
<!DOCTYPE html>Код:
* {
var t = 600 //время анимации
$(document).ready(function(){
$('#but1').click(function(){
$('#box1').animate({left: '0px', bottom:'0px'}, t);
setTimeout(function () {
$('.box').not('#box1').css({ left:'800px', bottom:'600px', zIndex:'10'});
$('#box1').css({zIndex:'5'});
},t);
});
$('#but2').click(function(){
$('#box2').animate({left: '0px', bottom:'0px'} , t);
setTimeout(function () {
$('.box').not('#box2').css({left:'800px', bottom:'600px', zIndex:'10'});
$('#box2').css({zIndex:'5'});
},t);
});
$('#but3').click(function(){
$('#box3').animate({left: '0px', bottom:'0px'}, t);
setTimeout(function () {
$('.box').not('#box3').css({left:'800px', bottom:'600px', zIndex:'10'});
$('#box3').css({zIndex:'5'});
},t);
});
});
|
Фридрих,
setTimeout то вам зачем??? |
пока один див не наедет полностью на другой, потом нижний див - в исходную
|
вот не знаю, как лучше сократить сценарий скрипта, ведь он повторяется, только кнопки и дивы разные....может swich или if else....?
может есть что то проще? подскажите плз, куда копать???? |
Фридрих,
лучше копать в сторону .each() но можно и без него ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
body {
background: #000;
}
.master{
width: 800px;
height: 700px;
position: relative;
margin:0 auto;
}
.view{
width: 800px;
height: 600px;
position: absolute;
bottom: 0px;
overflow: hidden;
}
.box{
width: 800px;
height: 600px;
position: absolute;
left: 800px;
bottom: 600px;
}
.button{
width: 100px;
height: 40px;
position: relative;
top: 0px;
cursor: pointer;
border: 1px solid #fff;
margin:5px;
float: left;
}
</style>
<script>
$(function()
{
var t = 600, buttons = $('.button'), boxs = $('.box');
buttons.click(function(){
var i = buttons.index(this),
box = boxs.eq(i);
boxs.stop(true,true);
box.animate({left: '0px', bottom:'0px'}, t,
function () {
boxs.not(box).css({left:'800px', bottom:'600px', zIndex:'10'});
box.css({zIndex:'5'});
});
});
});
</script>
</head>
<body>
<div class='master'> <!-- контейнер -->
<div class='button' id='but1'>1</div>
<div class='button' id='but2'>2</div>
<div class='button' id='but3'>3</div>
<div class='view'> <!-- видимая область -->
<div class='box' id='box1'><img src='http://javascript.ru/forum/images/smilies/victory.gif'></div>
<div class='box' id='box2'><img src='http://javascript.ru/forum/images/smilies/dance3.gif'></div>
<div class='box' id='box3'><img src='http://javascript.ru/forum/images/smilies/cray.gif'></div>
</div>
</div>
</body>
</html>
|
спасибо большое, всё работает как надо....
|
| Часовой пояс GMT +3, время: 10:42. |