Перейти к содержимому
Русский язык для Invision Community 5

Как работает popup окно

Ребят, не подскажите как создать модальное окно в IPB, то окно когда наводишь на ник пользователя на гл.странице...

 

 

Хочу так же сделать на одном информере... Только для иной задачи, не для отображения информации о пользователе...

 

Как сделать так, чтобы при наведении на свой элемент, всплывало данное окно?

Рекомендованные сообщения

  • Автор

Не совсем понимаю, если на странице присутствует элемент с 'blockid'. В этом случаи в код html страницы будет вставлено данное окно с css свойством display:none;. А при наведении курсора свойство удалится, так?

Не цитируйте сообщения с кодом. Разве не видно что это превращает страницу в нечитаемую портянку? Нахрена цитировать все сообщение целиком, быстрым ответом пользоваться не можете?

 

Не совсем понимаю, если на странице присутствует элемент с 'blockid'.

Откуда понять, если даже толком не взглянули на код. Хотя два три раза посмотрите на пример и постарайтесь понять его логику работы.

  • Автор

Спс, работает. Только вот по клику появляется окно, нельзя ли сделать так, чтобы при попадании курсора на элемент сплывала окно. И сворачивалось как только курсор сползет с элемента. :rolleyes:

Вместо click используйте mouseover. Если окно не закрывается, закрывайте при потере наведения на элемент - mouseout.

 

if($('blockid')){
   var popup;
   $('blockid').observe('mouseover', function(e){
       Event.stop(e);

       popup = new ipb.Popup('popupid', { 
           type: 'pane',
           initial: 'Html content here',
           hideAtStart: false,
           w: '600px',
           h: 250
       });
   });
$('blockid').observe('mouseout', function(e){
	if(popup){
		popup.kill();
	}
});
}

  • Автор

Блин, классно :)

  • Автор

Последний вопрос, дело в том, что на странице не один такой элемент, как выставить на классы?

 

$$('.blockid')...

 

Что та не выходит...

Селектор $$ возвращает массив, следовательно нужно обходить каждый элемент в отдельности.

 

$$('.blockid').each(function(elem){ ... });

  • Автор

А без обхождения не выйдет?

 

Я вот сейчас это кувыряю

 

ipb.delegate.register(".blockid", ipb.global.blockid );

 

не могу понять как это работает..?

А без обхождения не выйдет?

Вам то какая разница?

 

 

не могу понять как это работает..?

/* IPB3 Delegation manager */

/* Simple class that allows us to specify css selectors and an associated function to run */

/* when an appropriate element is clicked */

  • Автор

Ну как какая разница, юзеру лишний раз браузер грузить не хочется...))

Ну как какая разница, юзеру лишний раз браузер грузить не хочется...))

У вас так уж и много элементов которые переваливают за сотни?

Каким образом собираетесь вещать обработчик на элемент?

Если не ставить его непосредственно не элементы, нужно делегировать на их родительский блок. А если для них общий является только body? onmouseover это не onclick. Там и так хватает слушателей.

  • Автор

Не удается подобрать настройки, чтобы мол так же всплывало окно, а не по центру...

post-57319-0-98904000-1449911465_thumb.jpg

Изменено пользователем Testweb

type: balloon

stem: true

  • Автор

Спс, вот только закрываться окно перестало...

 

Копаю

hideClose: true,

ничего не выходит

 

            elem.observe('mouseout', function(e){		
               if(popup)
                  popup.kill();
           });		

 

Тоже не работает...

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.