2012-05-30 2 views
1

Я использую jQuery Tipsy Plugin для создания подсказок в моем проекте. Подсказки автоматически центрируются по элементу, как видно на демонстрационных плагинах, но я хотел бы, чтобы он выравнивался слева от элемента, знает ли кто-нибудь метод для этого? Плагин автоматически устанавливает абсолютную позицию всплывающей подсказки при отображении, я пытался изменить эту функцию, но не повезло.Выровнять jQuery Типсы к левому краю элемента

Update 1: Я хорошо осведомлен о документации и опциях gravity, я ищу, чтобы центрировать подсказки стрелку к левому краю из его соответствующего элемента.

Update 2: Вот макет до того, как я хочу подсказке быть размещены: Left: Current, Right: Intended

ответ

2

Нашел решение, я редактировал неправильную функцию. Это свою очередь, что там была еще одна функция, специально для «/ NW SW» тяжестей, обновленными JS:

  if (gravity.length == 2) { 
       if (gravity.charAt(1) == 'w') { 
        tp.left = pos.left - 5; 
       } else { 
        tp.left = pos.left + pos.width/2 - actualWidth + 15; 
       } 
      } 

Я собираюсь раскошелиться это на Git упаковывают нужны другие в этом функциональность.

+0

+1 Спасибо за отправку вашего решения для других, у кого может быть один и тот же вопрос. – lucuma

+0

Спасибо за ваш ответ, извиняюсь за мое плохое сообщение изначально. –

1

Вы должны быть в состоянии установить положение на основе варианта тяжести:

$('#foo').tipsy({gravity: 'e'}); // these are coordinates: // nw | n | ne | w | e | sw | s | se 

Информацию о настройках плагина можно найти на этой странице. Смотрите раздел под названием gravities для получения дополнительной информации или других параметров конфигурации.

http://onehackoranother.com/projects/jquery/tipsy/#

+0

Простите, что кто-то отправил этот точный ответ, я прокомментировал, почему это было неправильно, и они должны удалить его. Извиняюсь, благодарю вас за ответ, я хорошо знаю документы, но я пошел, чтобы выровнять подсказку всплывающей подсказки ** левому краю ** элемента, а не центру. –

+0

@RyanBrodie Я смущен, не можете опубликовать скриншот того, что вы ищете. – lucuma

+0

Mockup добавлен :) –

0

Глядя на источник (в строке 43),

Я нахожу это,

case 'n': 
tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width/2 - actualWidth/2}; 

Я думаю, изменения left должен сделать трюк.

+0

Я думаю, что это то, о чем спрашивает OP о том, к чему это нужно установить. – lucuma

+0

'Плагин автоматически устанавливает абсолютную позицию всплывающей подсказки при отображении, я попытался изменить эту функцию, но не повезло.« Да, я искал эту функцию для изменения? –

+0

«Как что-то может установить что-то автоматически, если у вас есть исходный код»? Кстати, попробовали ли вы установить «left: 0'? – Jashwant

1

Спасибо @Ryan за ответ, это именно то, что я искал. Я пошел немного дальше с вашим кодом и дал больше функциональности.

Я добавил 2 новых вариантов навеселе, так что он делает следующее:

  • На sw/nw, вы можете использовать edgeAlignWest: 'right' или edgeAlignWest: 'center'
  • На se/ne, вы можете использовать edgeAlignEast: 'left' или edgeAlignEast: 'center'

Новый код для этого -

// line 61, tipsy version 1.0.0a 
if (gravity.length == 2) { 
    if (gravity.charAt(1) == 'e') { 
     tp.left = (this.options.edgeAlignEast == 'right') ? (pos.left + pos.width - actualWidth + 15) : (pos.left + pos.width/2 - actualWidth + 15); 
    }else if (gravity.charAt(1) == 'w') { 
     tp.left = (this.options.edgeAlignWest == 'left') ? (pos.left - 5) : (pos.left + pos.width/2 - 15); 
    } else { 
     tp.left = pos.left + pos.width/2 - actualWidth + 15; 
    } 
} 

//... 
// line 191, tipsy version 1.0.0a 
$.fn.tipsy.defaults = { 
    edgeAlignEast: 'center', // <-- new option, default to 'center', you can also use 'right' 
    edgeAlignWest: 'center', // <-- new option, default to 'center', you can also use 'left' 
    className: null, 
    delayIn: 0, 
    delayOut: 0, 
    fade: false, 
    fallback: '', 
    gravity: 'n', 
    html: false, 
    live: false, 
    offset: 0, 
    opacity: 0.8, 
    title: 'title', 
    trigger: 'hover' 
}; 
+0

Отлично, что вы обновляете проект –

Смежные вопросы