Slyweb
На разработку сайта! Скидки 50%!

Как обнулить переменные после завершения скрипта?

Вы можете задавать любые вопросы по jQuery.

Как обнулить переменные после завершения скрипта?

Сообщение QRS » 07 июл 2010, 02:06

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

Написал следующий скрипт (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 все переменные высчитывались заново без обновления страницы.
Как это сделать?
Помогите пожалуйста. Заранее спасибо
QRS
 
Сообщения: 1
Зарегистрирован: 07 июл 2010, 01:59

Re: Как обнулить переменные после завершения скрипта?

Сообщение admin » 01 авг 2010, 12:59

Переместите переменные, определяющие смещение (margintop, marginleft) в функцию, выполняемую после клика по show.
admin
Администратор
 
Сообщения: 165
Зарегистрирован: 15 авг 2009, 20:02


Вернуться в Вопросы по jQuery

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron