gifts2017

Часы, падающие снежинки в поле HTML.

Опубликовал Сергей Марфин (MCitrus) в раздел Программирование - Работа с интерфейсом

Не знаю, есть ли что-то подобное здесь. Идея была в следующем: отображать часы сверху строкой. Способа "посекундного подергивания сервера" нужно было избежать. Вот и пришло на помощь поле HTML...
Перед новым годом в этом поле начинает падать снег))

Создаем новый макет с типом HTML документ. И вставляем туда:

< HTML>
< HEAD> < BODY on load=initsnow(); now() leftMargin=0 scroll=no topMargin=0 bgColor=#fcfaeb>
< CENTER>...
< SCRIPT> dayarray=new Array("Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота") montharray=new Array ("января","февраля","марта","апреля","мая","июня","июля","августа","сентября", "октября","ноября","декабря") function now() { // Начало функции var date=new Date(); // Получаем доступ к обьекту var h=date.getHours(); var m=date.getMinutes(); var s=date.getSeconds(); // Секунды var day=dayarray[date.getDay()]; var month=montharray[date.getMonth()]; var date1=date.getDate(); var year=date.getYear(); // Добавим нолик спереди, если число меньше 10 if(h < 10) h="0"+h; if(m < 10) m="0"+m; if(s < 10) s="0"+s; // Пишем новую инфу в тестовое содержимое слоя document.getElementById("DinamDate").firstChild.nodeValue=date1+" "+month+" "+year+". "+day+". "+h+":"+m+":"+s; setTimeout("now()",500) // Вызываем функцию now() повторно, через 100 миллисекунд } < /SCRIPT> < SCRIPT type=text/javascript>

// Здесь размещаем скрипт "снега". < /SCRIPT> < /BODY> < /HTML>
 

***

Далее на форме создаем поле вида "Поле HTML документа" и реквизит ТекстЧасов типа "Сторка". Связываем их. И далее вставляем:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ЗапуститьЧасы();
КонецПроцедуры
&НаСервере
Процедура ЗапуститьЧасы()
    Месяц = Число(Формат(ТекущаяДата(), "ДФ=M"));
    Если ((1 < Месяц) и (Месяц < 12)) Тогда 
        НазваниеМакета = "ДатаИВремя"
    Иначе
        НазваниеМакета = "ДатаИВремяИСнег";
    КонецЕсли;
    ТекстЧасов =  Обработки.МоиЧасы.ПолучитьМакет(НазваниеМакета).ПолучитьТекст();
КонецПроцедуры

 ***

Ии... вуаля!

Снежинками обзавелся уже давно.  Предновогодний синдром сделал свое дело. Smile

Скрипт снега №1.

Скрипт снега №2.

 ***

Функционирует это на 8.2 на управляемых формах.

Для удобства хотел сделать кнопку отключения эффекта снега на самом поле HTML, но необходимости пока нет. Оставлю Вам на "растерзание". Wink

Спасибо.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. simuljakr (simuljakr) 28.12.11 11:37
Что то снег не идет (
А можете выложить прикрепленный html-файл со снегом ?
2. Сергей Марфин (MCitrus) 28.12.11 12:55
Попробуйте вот в этом html-редакторе http://xhtml.ru/instr/html_editor/ скрипт с сайта http://syblog.ru/sneg-na-sajte/
3. me Halyna (mehalyna) 04.01.14 17:29
Попробовала по советам. Снег не идет(
4. Сергей Марфин (MCitrus) 09.01.14 17:03
(3) mehalyna, должно работать)) В макете во вкладке "Просмотр" работает скрипт?
Можете прислать мне свою конфигурацию, я посмотрю. Или опишите подробнее.
5. andrewks 09.01.14 17:15
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа