Показать сообщение отдельно
  #1 (permalink)  
Старый 07.07.2010, 01:12
QRS QRS вне форума
Новичок на форуме
Отправить личное сообщение для QRS Посмотреть профиль Найти все сообщения от QRS
 
Регистрация: 07.07.2010
Сообщений: 2

Как обнулить переменные после завершения скрипта
Появилась необходимость самому написать скрипт который при клике по ссылке плавно из нее выведет на середину экрана блок с необходимым содержимым. а при клике на нем - уберет его обратно.

Написал следующий скрипт (jQuery (jquery-1.4.2.min.js))

код вынесен в отдельный файл
$(document).ready(function (){
    parth = Math.round($(window).height()/2); // Получаю округленную половину высоты окна браузера
    partw = Math.round($(window).width()/2); // Получаю округленную половину ширины окна браузера
    offset = $(".show").offset(); // Получаю координаты .show
    offsl = offset.left + 100; // Прибавляю к координатам слева 100px (половина ширины блока .one)
    offst = offset.top + 100; // Прибавляю к координатам сверху 100px (половина высоты блока .one)
    margintop = parth - offst; // Получаю верхний отступ (для .one)
    marginleft = partw - offsl; // Получаю левый отступ (для .one)
    
    $('.one').height($(".show").height()) ; // задаю исходную высоту для .one равную высоте .show    
    $('.one').width($(".show").width()) ; // задаю исходную ширину для .one равную ширине .show        
    $(".show").click(function(){ // по событию click объект .one становится видемым, плавно увеличивется и меняет прозрачность, положение на margintop b marginleft
        $('.one').show().animate({width: "200px", height: "200px", 'top':margintop, 'left':marginleft, opacity: 1}, 400);
    }); 
    
    $(".one").click(function(){ // по событию click
        width = $(".show").width(); // присваиваю переменной значение ширины .show
                            height = $(".show").height(); // присваиваю переменной значение высоты .show
 
        $('.one').animate({'width':width, 'height':height, top: "0px", left: "0px",  opacity: 0.1}, 400, function(){ // объект .one плавно уменьшается до width и height, меняет прозрачность, возвращается на исходное положение
            $('.one').hide(); // скрывает .one
                                          } 
                            
                             );
        return false
    });
});



Все работает. Но если после выполнения скрипта (когда .one вновь скрыт) я изменю размер окна браузера и заново кликну по .show - то блок .one выезжает не на новый центр окна, а на тот что был при первом запуске скрипта.
Если страницу обновить - тогда все нормально, но мне нужно чтобы при каждом клике по .show все переменные высчитывались заново без обновления страницы.
Как это сделать?
Помогите пожалуйста. Заранее спасибо
Ответить с цитированием