Проблема с событием .click
Здравствуйте, форумчане!
пишу код, который должен сначала по выбору квадрата вытаскивать из низа экрана div, соответствующий этому квадрату, и сжимать поле выбора, а в последствии, при попытки выбрать другой вариант, дивы будут выезжать уже не снизу, а сбоку. Может немного криво объяснил, но уж как смог. Так вот первая часть работает чудно, а вот выезжание сбоку вообще не хочет работать, хотя вроде все там совсем просто :help: Вот хтмл <!DOCTYPE html> <html> <head> <title>Grace</title> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <link href="Grace.css" rel="stylesheet" type="text/css" /> <script type='text/javascript' src='js/Grace.js'></script> <script type='text/javascript' src='js/Sliding.js'></script> </head> <body> <div id='header'> <h1> Grace </h1> <ul> <li>Production </li> <li>Gallery </li> <li>About </li> <li>Contacts </li> </ul> </div> <div id='lent'> <div id='first'> <img src='' alt='' /> </div> <div id='second'> <img src='' alt='' /> </div> <div id='third'> <img src='' alt='' /> </div> <div id='forth'> <img src='' alt='' /> </div> </div> <div id='hidden1'></div> <div id='hidden2'></div> <div id='hidden3'></div> <div id='hidden4'></div> </body> </html> Вот CSS *{ margin:0; padding:0; } html, body { height: 100%; overflow: hidden; } body { background-color: #FDF5E6; } #header { width: 100%; height:16%; background-color: #CC99CC; } h1 { color: silver; font-size: xx-large; } ul { margin-left: 70%; } li { display: inline-block; margin-left: 2%; } #lent { width: 70%; height: 30%; font-size: 0; margin-left: 16%; margin-top: 15%; } #first, #second, #third, #forth { height:100%; width:25%; display: inline-block; } #first { background-color: blue; } #second { background-color: yellow; } #third { background-color: green; } #forth { background-color:red; } #hidden1, #hidden2, #hidden3, #hidden4 { width:100%; height: 79%; margin-top: 26.5%; position: absolute; diplay: none; } #hidden1 { background-color: blue; } #hidden2 { background-color: yellow; } #hidden3 { background-color: green; } #hidden4 { background-color: red; } Вот первый JQuery код $(document).ready(function() { $('#first').click(function() { $('#hidden1').show(); setTimeout( function() { $('#lent').animate({ width: '100%', height: '5%', marginTop: '0%', marginLeft: '0%' }, 2000); }, 750); $('#hidden1').animate({ marginTop: '0%' }, 1000); $('#hidden1').addClass('selected'); $('#lent').addClass('compressed'); }); $('#second').click(function() { if($('#lent').hasClass('compressed')) {} else { $('#hidden1').css('margin-left', '100%'); $('#hidden1').css('margin-top', '0%'); $('#hidden2').show(); setTimeout( function() { $('#lent').animate({ width: '100%', height: '5%', marginTop: '0%', marginLeft: '0%' }, 2000); }, 750); $('#hidden2').animate({ marginTop: '0%' }, 1000); $('#hidden2').addClass('selected'); $('#lent').addClass('compressed'); } }); $('#third').click(function() { if($('#lent').hasClass('compressed')) {} else { $('#hidden3').show(); setTimeout( function() { $('#lent').animate({ width: '100%', height: '5%', marginTop: '0%', marginLeft: '0%' }, 2000); }, 750); $('#hidden3').animate({ marginTop: '0%' }, 1000); $('#hidden3').addClass('selected'); $('#lent').addClass('compressed'); } }); $('#forth').click(function() { if($('#lent').hasClass('compressed')) {} else{ $('#hidden4').show(); setTimeout( function() { $('#lent').animate({ width: '100%', height: '5%', marginTop: '0%', marginLeft: '0%' }, 2000); }, 750); $('#hidden4').animate({ marginTop: '0%' }, 1000); $('#hidden4').addClass('selected'); $('#lent').addClass('compressed'); } }); }); Вот второй $(document).ready(function () { $('#first').click(function() { if($('#lent').hasClass('compressed')) { if($('#hidden1').hasClass('selected')) {} else { ('#hidden1').show(); $('.selected').animate({ marginRight: '100%' }, 1000); $('#hidden1').animate({ marginLeft: '0%' }, 1000); $('.selected').css('margin-left', '100%'); } } }); }); |
Giddeon,
попробуйте собрать это всё вместе к какой нибудь песочнице ... Цитата:
|
рони,
к какой-нибудь песочнице? это как понять? |
Giddeon,
http://learn.javascript.ru/play или тут [HTML run][/HTML]run для исполнения кода 1 скрипт можно скомпоновать 4 блока почти однотипны |
рони
а конкретных причин, почему может не работать, не нашлось?) |
Giddeon,
1 конкретную я вам написал, а неработает потому что клики кофликтуют из 1 и 2 скрипта |
Giddeon, жать на жёлтый прямоугольник потом на синий, слабонервным в код не вглядываться )))
<!DOCTYPE html> <html> <head> <title>Grace</title> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"> </script> <style type="text/css"> *{margin:0;padding:0} html,body{height:100%;overflow:hidden} body{background:#FDF5E6} #header{width:100%;height:16%;background:#C9C} h1{color:#C0C0C0;font-size:xx-large} ul{margin-left:70%} li{display:inline-block;margin-left:2%} #lent{width:70%;height:30%;font-size:0;margin-left:16%;margin-top:15%} #first,#second,#third,#forth{height:100%;width:25%;display:inline-block} #first,#hidden1{background:#00F} #second,#hidden2{background:#FF0} #third,#hidden3{background:#008000} #forth,#hidden4{background:#F00} #hidden1,#hidden2,#hidden3,#hidden4{width:100%;height:79%;margin-top:26.5%;position:absolute} .selected{ border: #00CED1 5px dashed; } </style> <script> $(document).ready(function() { var flag = false ; $('#first').click(function() { if(flag) return;flag = true; $('#hidden1').show(); setTimeout( function() { $('#lent').animate({ width: '100%', height: '5%', marginTop: '0%', marginLeft: '0%' }, 2000); }, 750); $('#hidden1').animate({ marginTop: '0%' }, 1000); $('#hidden1').addClass('selected'); $('#lent').addClass('compressed'); }); $('#second').click(function() { if(flag) return;flag = true; if($('#lent').hasClass('compressed')) {} else { $('#hidden1').css('margin-left', '100%'); $('#hidden1').css('margin-top', '0%'); $('#hidden2').show(); setTimeout( function() { $('#lent').animate({ width: '100%', height: '5%', marginTop: '0%', marginLeft: '0%' }, 2000); }, 750); $('#hidden2').animate({ marginTop: '0%' }, 1000); $('#hidden2').addClass('selected'); $('#lent').addClass('compressed'); } }); $('#third').click(function() { if(flag) return;flag = true; if($('#lent').hasClass('compressed')) {} else { $('#hidden3').show(); setTimeout( function() { $('#lent').animate({ width: '100%', height: '5%', marginTop: '0%', marginLeft: '0%' }, 2000); }, 750); $('#hidden3').animate({ marginTop: '0%' }, 1000); $('#hidden3').addClass('selected'); $('#lent').addClass('compressed'); } }); $('#forth').click(function() { if(flag) return;flag = true; if($('#lent').hasClass('compressed')) {} else{ $('#hidden4').show(); setTimeout( function() { $('#lent').animate({ width: '100%', height: '5%', marginTop: '0%', marginLeft: '0%' }, 2000); }, 750); $('#hidden4').animate({ marginTop: '0%' }, 1000); $('#hidden4').addClass('selected'); $('#lent').addClass('compressed'); } }); }); </script> <script> $(document).ready(function () { $('#first').click(function() { if($('#lent').hasClass('compressed')) { if($('#hidden1').hasClass('selected')) {} else { $('#hidden1').show(); $('#hidden1').animate({ marginLeft: '0%' }, 1000); $('.selected').animate({ marginLeft: '-100%' }, 1000, function(){ $('.selected').css('margin-left', '100%').removeClass('selected'); $('#hidden1').addClass('selected'); }); } } }); }); </script> </head> <body> <div id='header'> <h1>Grace</h1> <ul> <li>Production</li> <li>Gallery</li> <li>About</li> <li>Contacts</li> </ul> </div> <div id='lent'> <div id='first'><img src='' alt=''></div> <div id='second'><img src='' alt=''></div> <div id='third'><img src='' alt=''></div> <div id='forth'><img src='' alt=''></div> </div> <div id='hidden1'></div> <div id='hidden2'></div> <div id='hidden3'></div> <div id='hidden4'></div> </body> </html> |
рони, спасибо большое, стало хоть как-то работать)
а что ты поменял, кроме добавления системы флагов?) и еще кое-что, по идее во втором скрипте новый див, выезжающий сбоку должен "выталкивать" текущий за экран, а текущий просто исчезает, хотя нигде в коде не прописано, чтобы нечто подобное происходило, не подскажешь, в чем может быть дело? |
Giddeon,
Цитата:
|
Часовой пояс GMT +3, время: 04:04. |