Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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 все переменные высчитывались заново без обновления страницы.
Как это сделать?
Помогите пожалуйста. Заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 07.07.2010, 01:43
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

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

А каким образом этого можно добиться? Как их пересчитать при каждом событии click по объекту .show?
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2010, 03:08
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ну как... вычислять их при щелчке и не после загрузки документа

p.s. и если создаешь новую переменную, пиши перед ней var:
var a = 1;
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать что-то после location.replace? Nominus umbra Общие вопросы Javascript 26 23.12.2009 21:50
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 13:51
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23
как прекратить выполнение скрипта ? kefi Общие вопросы Javascript 3 31.03.2009 19:05
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11