Пятница, 29 Ноября 2024, 00:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
(JS) Вывести переменную из switch case
romgermanДата: Пятница, 01 Июня 2012, 11:33 | Сообщение # 1
старожил
Сейчас нет на сайте
Смотри ниже.
Привет всем! Кто знает, как вывести переменную из массива?
Вот такой код:
Code

                     switch (gravity.charAt(0)) {
                         case 'n':
                             tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north');
                             break;
                         case 's':
                             tip.css({top: pos.top - actualHeight, left: pos.left + pos.width /2 - actualWidth /2}).addClass('tipsy-south');
                             break;
                         case 'e':
                             tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east');
                             break;
                         case 'w':
                             tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west');
                             break;
                     }

Мне нужно вывести переменную 'e', или как это назвать, из gravity в код:
Code

                     if (opts.fade) {
                         tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.9});
                     //Сюда нужно вывести её и прилепить к коду tip.css({opacity: 0, display: 'block', visibility: 'visible', left:0}).animate({opacity: 0.9});
                     } else {
                         tip.css({visibility: 'visible'});
                     }

Кто знает как это сделать? Уже 2 часа сижу мучаюсь, весь гугл перерыл нигде толкового ответа не могу найти.
P.S. Если что непонятно объяснил, задавайте вопросы.

Добавлено (31.05.2012, 20:58)
---------------------------------------------
Ап

Добавлено (01.06.2012, 11:33)
---------------------------------------------
ааааааап


Сообщение отредактировал romgerman - Пятница, 01 Июня 2012, 16:19
AGENTX001Дата: Пятница, 01 Июня 2012, 12:34 | Сообщение # 2
почётный гцупер
Сейчас нет на сайте
romgerman, я не понял что тебе нужно wacko
romgermanДата: Пятница, 01 Июня 2012, 12:46 | Сообщение # 3
старожил
Сейчас нет на сайте
Блин. Я хз, как лучше объяснить.
pixeyeДата: Пятница, 01 Июня 2012, 13:05 | Сообщение # 4
Red Winter Software
Сейчас нет на сайте
Quote (romgerman)
Привет всем! Кто знает, как вывести переменную из массива?


Совершенно не понятно чего ты хочешь.
Вывести то, что в кейсе "E" ?
ну создаешь переменную глобальную для простоты int myVal;
Code
case 'e':  
                          myVal  = 10;
                            break;

Теперь подставляй свой myVal куда хочешь.

но вообще если мы говорим про массив, то переменная выводится по индексу. myVal = myVals[currentIndex]; где currentIndex - индекс хранимого объекта.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

Master_ChiefДата: Пятница, 01 Июня 2012, 14:46 | Сообщение # 5
Shoot Space creator
Сейчас нет на сайте
во-первых откуда берётся эта е? во-вторых, судя по коду ты в кейсе назначаешь свойства, и непонятно что ты собираешься делать дальше.

а, ступил, прошу прощения. ситуация меняется, е - всего лишь представление символа по его коду (см. описание метода charAt()), т.е. по-сути она никакой роли, кроме как задания направления не играет, и хранит только цифровое представление символа (его код в таблице символов). Соответственно, как я понял, тебе нужно именно задание направления. Тогда юзай:

Code

if (opts.fade) tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth, opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.9}).addClass('tipsy-east');
else tip.css({visibility: 'visible'});


P.S.
Странная, однако, логика...




Сообщение отредактировал Master_Chief - Пятница, 01 Июня 2012, 14:55
romgermanДата: Пятница, 01 Июня 2012, 16:18 | Сообщение # 6
старожил
Сейчас нет на сайте
Немного не то, но в правильном направлении. Вот весь код (это подсказки для сайта):
Code

(function($) {
     $.fn.tipsy = function(options) {

         options = $.extend({}, $.fn.tipsy.defaults, options);
          
         return this.each(function() {
              
             var opts = $.fn.tipsy.elementOptions(this, options);
              
             $(this).hover(function() {

                 $.data(this, 'cancel.tipsy', true);

                 var tip = $.data(this, 'active.tipsy');
                 if (!tip) {
                     tip = $('<div class="tipsy"><div class="tipsy-inner"></div></div>');
                     tip.css({position: 'absolute', zIndex: 100000});
                     $.data(this, 'active.tipsy', tip);
                 }

                 if ($(this).attr('title') || typeof($(this).attr('original-title')) != 'string') {
                     $(this).attr('original-title', $(this).attr('title') || ''); this.title = '';  
                 }

                 var title;
                 if (typeof opts.title == 'string') {
                     title = $(this).attr(opts.title == 'title' ? 'original-title' : opts.title);
                 } else if (typeof opts.title == 'function') {
                     title = opts.title.call(this);
                 }

                 tip.find('.tipsy-inner')[opts.html ? 'html' : 'text'](title || opts.fallback);

                 var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight});
                 tip.get(0).className = 'tipsy'; // reset classname in case of dynamic gravity
                 tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body);
                 var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight;
                 var gravity = (typeof opts.gravity == 'function') ? opts.gravity.call(this) : opts.gravity;

                 switch (gravity.charAt(0)) {
                     case 'n':
                         tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north');
                         break;
                     case 's':
                         tip.css({top: pos.top - actualHeight, left: pos.left + pos.width /2 - actualWidth /2}).addClass('tipsy-south');
                         break;
                     case 'e':
                         tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east');
                         break;
                     case 'w':
                         tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west');
                         break;
                 }

                 if (opts.fade) {
                     tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.9});
                 } else {
                     tip.css({visibility: 'visible'});
                 }

             }, function() {
                 $.data(this, 'cancel.tipsy', false);
                 var self = this;
                 setTimeout(function() {
                     if ($.data(this, 'cancel.tipsy')) return;
                     var tip = $.data(self, 'active.tipsy');
                     if (opts.fade) {
                         tip.stop().fadeOut(function() { $(this).remove(); });
                     } else {
                         tip.remove();
                     }
                 }, 0);

             });
              
         });
          
     };
      
     $.fn.tipsy.elementOptions = function(ele, options) {
         return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
     };
      
     $.fn.tipsy.defaults = {
         fade: false,
         fallback: '',
         gravity: 's',
         html: false,
         title: 'title'
     };
      
     $.fn.tipsy.autoNS = function() {
         return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
     };
      
})(jQuery);

Мне нужно из массива gravity вывести e в строку:
Code
tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.9});

Этот массив относится к переменной tip.
Master_ChiefДата: Пятница, 01 Июня 2012, 17:29 | Сообщение # 7
Shoot Space creator
Сейчас нет на сайте
ещё раз говорю - е - всего лишь код, соответственно и обращаться надо к нему как gravity[0]. потому что в приведённом тобой коде по нему только свитчится остальная логика, и фактически само значение вроде как нигде не применяется (поправь, если ошибаюсь)

romgermanДата: Пятница, 01 Июня 2012, 19:25 | Сообщение # 8
старожил
Сейчас нет на сайте
Ладно. Ничего не получается) Пробовал ещё через класс, но анимация с задержкой происходит. Всем спасибо!
Master_ChiefДата: Пятница, 01 Июня 2012, 19:38 | Сообщение # 9
Shoot Space creator
Сейчас нет на сайте
хотя бы задачу объяснил бы, можно было бы обойтись и без всяких тяжеловесных плагинов к jQuery

romgermanДата: Пятница, 01 Июня 2012, 19:52 | Сообщение # 10
старожил
Сейчас нет на сайте
Master_Chief, каких ещё плагинов???
Master_ChiefДата: Пятница, 01 Июня 2012, 20:04 | Сообщение # 11
Shoot Space creator
Сейчас нет на сайте
эм, приведённый тобой код - код типичного плагина ротатора для jQuery

romgermanДата: Пятница, 01 Июня 2012, 20:06 | Сообщение # 12
старожил
Сейчас нет на сайте
Master_Chief, What!? Это скрипт подсказок.

Добавлено (01.06.2012, 20:06)
---------------------------------------------
Хочу чтоб подсказка, которая появляется с западной стороны, не просто фэйдилась, а выезжала с левой стороны.

Master_ChiefДата: Пятница, 01 Июня 2012, 20:56 | Сообщение # 13
Shoot Space creator
Сейчас нет на сайте
фсплм, полюбому плагин для jQuery. .animate() тебе в помощь

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг