Jump to content

Radiocity

User
  • Posts

    664
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by Radiocity

  1. Если Вы обратитесь к документации, то обнаружите для себя событие onSelect, к которому вы и прикручиваете ваше диалоговое окно
  2. Думаю, придется редактировать шаблон, отслеживая id страницы или меню, и жестко задавать необходимые данные.
  3. Вступление В этой теме напишем простой плагин на jQuery(1.4.3+). Задача - показывать всплывающее сообщение на странице с эффектом затемнения фона. При нажатии на фон или кнопку "Закрыть", сообщение плавно пропадает. Посмотреть демонстрационную страницу Базовая верстка (index.html) Для проверки плагина потребуется простенькая страница с ссылкой, активирующей всплывающее сообщение. Будет подключена библиотека jquery-latest.js, и файл нашего плагина jmypopup.js. <!doctype html> <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" src="pl.js"></script> <style> <!-- здесь будет стилевое оформление --> </style> </head> <body> <a href="#" id="run">Показать сообщение</a> </body> </html> Пишем плагин (jmypopup.js) За основу возьмем код из урока, написанного Антоном Шевчуком: (function($) { // Обертка var defaults; var options; $.fn.mypopup = function(params){ options = $.extend({}, defaults, options, params); // Основной код return this; }; })(jQuery); // Обертка Создается обертка, которая предотвратит нежелаемые конфликты. Внутри назначаются переменные defaults (массив настроек по-умолчанию) и options (массив пользовательских настроек). Далее создается функция, которой и будет наш плагин. Назовем её mypopup. Рассмотри возможные параметры, передаваемые плагину. Во-первых, ширину (width) и высоту (height). Это позволит нам гибко управлять размерами окна для каждого из вызывающих объектов и выравнивать по центру окна браузера. В нашем примере для измерения используем числовые значения. Во-вторых, флаг background, отвечающий за фоновый эффект затемнения/осветления (зависит от предпочтений верстальщика). Стоит отметить, что данный параметр введен с целью оптимизации. В-третьих, текстовый параметр html, который содержит пользовательских html код, отображаемый во всплывающем окне. В-четвертых, текст ссылки для закрытия close. Если текста не будет, то и ссылка не создается. Опять же, подобный нюанс, ввдене с целью оптимизации. Добавим описанные переменные в код, задав значения по умолчанию: var defaults = { width:'200', height:'64', background:true, html:'', close:'Закрыть'}; Принцип работы плагина прост. Чтобы не нарушить верстку на странице, в ее конце создается код всплывающих сообщений, не отображаемых пользователю. Далее при необходимости пользователю показывается определеный блок данных. Отмечу, что фоновый слой мог быть и один. Однако, я посчитал, что это может сказаться на визуализации, в случае вызова нескольких окон одновременно. Объявим в основном коде новую переменную,отвечающую за уникальность каждого всплывающего окна. Это позволит избежать нежелательных эффектов. // Основной код // Случайное значение 1-1024 : var seed = 1 + Math.floor(Math.random()*1024); Далее в основном коде напишем условие создания фонового слоя, используя функцию .append(). Обязательно спрячем его от пользователя командой .hide(): // Фон: if (options.background){ $("body").append('<div id="plup_fade'+seed+'" class="plup_fade"></div>'); $("#plup_fade"+seed).hide(); } // end if Теперь перейдем к созданию самого сообщения. Добавление происходит аналогично. Блоку устанавливается высота и ширина, приведенные к числовому типу командой parseInt(). К сожалению, мне не пришло в голову более грамотного стилистического оформления для выравнивания сообщения по центру страницы, чем отрицательные отступы. Не стоит забывать о необходимости спрятать созданный блок от пользователя. // end if // Добавление слоя сообщения: $("body").append('<div id="plup_msg'+seed+'" class="plup_msg" style="width:'+parseInt(options.width)+ 'px; min-height:'+parseInt(options.height)+'px; height:'+parseInt(options.height)+'px; margin-top: -' +(parseInt(options.height)/2)+'px; margin-left: -' +(parseInt(options.width)/2)+'px;"><div class="plup_data"></div></div>'); // Добавление текста, если он есть: if (options.html) { $("#plup_msg"+seed+" .plup_data").html(options.html); } else { $("#plup_msg"+seed+" .plup_data").html('<h2><center>Привет</center></h2>'); } // end if..else $("#plup_msg"+seed).hide(); // Добавление ссылки "Закрыть" if(options.close){ $("#plup_msg"+seed).append('<div class="plup_close"><a href="#" title="'+options.close+'">'+options.close+'</a></div>'); } Пора научить наши сообщения всплывать при нажатии на указанный объект, а также прятать при нажатии на фон или ссылку "Закрыть". Добавим специй! Прятать и показывать сообщение будем с использованием плавного исчезновения. В этом нам поможет команды .fadeIn() и .fadeOut(). В основном коде допишем: // Нажатие на объект: $(this).click(function(){ $("#plup_fade"+seed).show(); $("#plup_msg"+seed).fadeIn('slow'); }); // нажатие на фон или сылку "Закрыть" $("#plup_msg"+seed+" .plup_close a, #plup_fade"+seed).click(function(){ $("#plup_msg"+seed).fadeOut('slow'); $("#plup_fade"+seed).delay(8000).hide(); }); Собственно, наш плагин почти готов. Осталось оформить и заставить работать. Для запуска в нашем примере допишем в конце jmypopup.js код, выполняющийся при загрузке страницы: $(document).ready(function(){ $("#run").mypopup({ background:true, close:'Закрыть', html:'<h2 class="background:">JQuery popup plugin hello</h2><p>Lorem ipsum dolor sit amet</p>'}); }); Стилистическое оформление Основной проблемой, которую необходимо решить на данном этапе - это растянуть фон-затемнение на всю ширину и высоту экрана. Реализуем задумку через абсолютное позиционирование слоя .plup_fade относительно body. Собственно, это еще одна причина, по которой html код плагина вставляется в конце под основным контентом. Для создания полупрозрачности кроссбраузерными вариантами css параметра opacity. Для капризного ie7 воспользуемся фильтром и хаком, понятным только этому браузеру. body { min-height: 100%; height:100%; margin:0; padding:0; } .plup_fade{ position: absolute; top: 0; left:0; right:0; bottom:0; background: #000; *filter: alpha(opacity=50); /*Ie7 хак*/ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; opacity: 0.50; z-index:9998; } Чтобы выровнить всплывающее сообщение по центру, воспользуемся абсолютным позиционированием относительно body и отрицательными отступами, которые генерируются в плагине. .plup_msg{ position:absolute; top:50%; left:50%; background:#fff; z-index:9999; border: 1px solid #667; overflow:hidden; } Наш плагин готов. Послесловие У нас получился несложный плагин, работающий в браузерах FF4, Opera 9+, IE7+, Google Chrome, Safari 5.05+. Он далек от идеала и не покушается на таких монстров, как Lightbox2 или Colorbox. Не умеет работать с ajax или подгружать картинки, создавая сложные галереи. Зато в сжатом виде весит всего 0.1kb и не использует графики вообще. Отлично подойдет для дополнительного функционала в административных панелях. Для отображения и скрытия затемненного фона используется .show() и .hide(), однако можно воспользоваться и командой .fadeTo(). А мне все равно! Больше нравится первый вариант =) Для создания уникально числа лучше использовать значение времени и даты. При перепечатывании данного материала, просьба указывать ссылку на текущий первоисточник
  4. Rss лента не поможет?
  5. Не совсем уверен насчет музыки, но на jquery можно выполнить поставленную визуальную задачу. Даже с точками в начале возможно
  6. Да, проблема с body и градиентами имеется. Однако, в Вашем случае она решается довольно легко, так как используемая методика верстки позволяет задать градиент для i_wrapper. http://jsfiddle.net/Radiocity/MRWBT/53/
  7. А почему не прикрутите jquery галерею? В интернете много красивых решений.
  8. 1) Зарегистрируйте почтовый ящик у проверенного провайдера (лучше у нескольких), указав свою настоящие ФИО. 2) Соберите исходный файл дизайна, сверстанный макет и текстовый файл с лицензионным соглашением на использование вышеописанных данных. 3) Отправьте на созданные почтовые ящики В дальнейшем можно будет доказать правообладание на созданные материалы. С рукописями поступают примерно также, посылая их себе заказным письмом.
  9. Проблема связана с тем, что opacity объекта применяется ко всем дочерним элементам, включая текст. RGBa не будет работать в ie7 и ie8, поэтому следует создать 2 отдельных элемента, позиционируя их друг над другом или же задать полупрозрачное фоновое png изображение PS Окей! Шестого осла списали, но седьмого и восьмого рано.
  10. Время хранения кэша можно выставить? Возможно через некоторое время он сбрасывается и при обращении генерируется медленными неоптимизированными скриптами.
  11. Отправляйте собранный запрос средствами javascript или сделайте скрытое поле <input type="hidden" value="667"/>
  12. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> Это должно помочь. FF до 4 версии не понимает html5 объекты и интерпритирует их как inline элементы. Думаю, можно посылать для всех браузеров без ограничения. На скорости это не сильно скажется.
  13. Забрал в примеры сайтов (закладки) для будущего изучения. PS ПсиВокер, а ты специально сделал такой доступ?
  14. Не могли бы Вы уточнить, что в вашем понимание значит работоспособность? Как объективно рассчитать нагрузку на сервер?
  15. Не стоит спешить. Времени хватит на всё =)

  16. http://jsfiddle.net/Radiocity/HT34v/ Все работает, если вставить корректный путь к фоновому изображению в одинарные кавычки. Есть ли у элемента .vse высота?
  17. Тег правильно закройте. w3c валидатор не ругается =\
  18. Bugreport: Если 2 раза быстро нажать на страницы (ссылки в подвале), то все уезжает за пределы экрана. Browser: Google Chrome
  19. Для работы с Joomla нужно особое кунг-фу. В плане чистки и допила, конечно же. По большей части из-за расширенной функциональности. В общем, Joomla - каторга для фрилансера. Выбирайте Flexo CMS
  20. 1) В адресной строке проводника введите ftp://yoursite.com/ 2) В появившемся окне введите логин/пароль. Но я бы посоветовал воспользоваться другими средствами. Например, CoffeeCup FTP.
  21. Я не уверен, что это необходимо делать именно процессору. Шейдеры можно применять всякие, и прочие плюшки DirectX да OpenGL http://www.gamedev.ru/articles/?id=30038 Если у кого то есть проблемы с отображением рассматриваемой функции, попробуйте включить WebGL: Усиановить webgl.enabled_for_all_sites=true в about:config
  22. Вообще не факт. Видеокарта постоянно что-то строит, натягивает текстуры, размывки, тени, короче занимается работой. Видеокарта не строит DOM и никогда этим заниматься не будет. А отображать примитивные полигоны может оказаться менее затратно по ресурсам, чем перерисовать весь интерфейс Вин7. А процессор? Для построения 3д сцены производится 100500 умножений в режиме реального времени. Хорошо еще нет тени... Политика заманивания мотыльков на свет настораживает
  23. Конкурс должен содержать простое необычное и интересное задание. Вспомните те же Сады Семирамиды. Потенциальный конкурс по Joomla/WP попахивает выполнением работы за другого человека (ака хостера). Именно этот факт может оттолкнуть форумчан в данном случае.
  24. Работать бесплатно? Ну уж нет )))
  25. Максимум ссылки на порно из закладок .Не знаю, лично меня такие новости радуют...тем более я не думаю, что это заключительная версия Ff, да и как писал, и самого инспектора =) Представьте, что ноутбук работает от аккумулятора. Построение 3д сцены съест больше энергии, чем обычный рендер дерева. Соответственно, время работы на ноутбуке сокращается. Но самый главный недостаток - FF тормозит.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy