|
|
|
|
|
для: bronenos
(17.02.2008 в 13:21)
| | >Чтоб не показывалось - ставьте куку со временем и потом смотрите на куку, прошло время или нет
Хе-хе...
А "куку" когда потом смотреть?
Через час?
А кто скажет, что точно час прошел?
setTimeout?
Тогда зачем "кука"-то вовсе? | |
|
|
|
|
|
|
|
для: locker_fx
(17.02.2008 в 12:10)
| |
<html>
<head>
<script>
var ROKNO, ROKNO_width, ROKNO_height;
var KREST, KREST_width, KREST_height; //delete
function myFuncScrollResize () //определение размеров окна и центрирование рекламного окна и "крестика"
{
var oLeft = parseInt ((document.body.clientWidth - ROKNO_width ) / 2, 10);
var oTop = parseInt ((document.body.clientHeight - ROKNO_height) / 2, 10);
with (ROKNO.style)
{left = document.body.scrollLeft + oLeft + 'px'; top = document.body.scrollTop + oTop + 'px'}
with (KREST.style) //delete
{ //delete
left = document.body.scrollLeft + (oLeft + ROKNO_width - KREST_width) + 'px'; //delete
top = document.body.scrollTop + (oTop - KREST_height - 2) + 'px'; //delete
} //delete
}
function myFuncOpen () //рекламное окно и "крестик" видимые
{
myFuncScrollResize ();
ROKNO.style.display = 'block';
KREST.style.display = 'inline'; //delete
}
function myFuncClose () //рекламное окно и "крестик" невидимые + запуск таймера на 1 час
{
ROKNO.style.display = 'none';
KREST.style.display = 'none'; //delete
setTimeout (myFuncOpen, (60 * 60 * 1000));
}
function myAddFunc (o, e, f, b) //"навешивание" функций
{
if (document.addEventListener) o.addEventListener (e, f, b);
else if (document.attachEvent) o.attachEvent ('on' + e, f, b);
else o ['on' + e] = f;
}
onload = function ()
{
//создание рекламного окна
ROKNO = document.createElement ('iframe');
with (ROKNO) {id = 'myReklama'; frameBorder = 0; src = 'reklama.html'}
with (ROKNO.style) {zIndex = 999; position = 'absolute'; display = 'none'}
myAddFunc (ROKNO, 'load', myFuncOpen, false);
//создание "крестика"
KREST = document.createElement ('img'); //delete
with (KREST) {id = 'myClose'; src = 'close.gif'} //delete
with (KREST.style) {zIndex = 999; backgroundColor = 'red'; position = 'absolute'; cursor = 'pointer'; display = 'none'} //delete
myAddFunc (KREST, 'click', myFuncClose, false); //delete
//"приживление" рекламного окна и "крестика"
with (document.body)
{
appendChild (ROKNO);
appendChild (KREST); //delete
}
//"навешивание" на окно функции скроллинга и функции изменения размеров;
myAddFunc (window, 'scroll', myFuncScrollResize, false);
myAddFunc (window, 'resize', myFuncScrollResize, false);
//установка размеров рекламного окна и размеров "крестика"
ROKNO_height = 234; ROKNO_width = 345;
KREST_height = 21; KREST_width = 43; //delete
with (ROKNO.style) {height = ROKNO_height + 'px'; width = ROKNO_width + 'px'}
with (KREST.style) {height = KREST_height + 'px'; width = KREST_width + 'px'} //delete
myFuncScrollResize ();
}
</script>
</head>
<body>
<div style="width: 234%; height: 345%">content</div>
</body>
</html>
|
1. "Плавность хода рекламного окна" при скролле тела документа не реализуема.
Ибо onscroll - это дискретно-перманентное событие, а не разовое.
2. И по поводу "крестика" внутри рекламного окна.
Сделать это легко - удалите все строки кода, в которых есть //delete.
А файл reklama.html должен тогда иметь вид:
<html><body bgcolor="silver">
<a href="#" onclick="top.self.myFuncClose (); return false">Закрыть</a>
</body></html>
| Однако работать это будет только в одном случае - если файл reklama.html будет С ТОГО ЖЕ ДОМЕНА, что и индексный файл (код которого приведён выше).
А вот с картинкой-"крестиком" будет работать в любом варианте - и со "своим", и с "чужим" файлом внутри рекламного окна. | |
|
|
|
|
|
|
|
для: locker_fx
(17.02.2008 в 12:10)
| | Убегаю, времени нет.
Чтоб плавно - работайте с setTimeout в цикле
Чтоб не показывалось - ставьте куку со временем и потом смотрите на куку, прошло время или нет | |
|
|
|
|
|
|
|
для: bronenos
(17.02.2008 в 10:28)
| | Спасибо, только пришлось исправить:
document.onscroll = myFuncBodyScroll;
|
на:
document.body.onscroll = myFuncBodyScroll;
|
Подскажите, пожалуйста, как правильно из файла reklama.html закрыть окошко? Делаю так(содержимое reklama.html):
<html><body bgcolor="navy"></body><a href='#' onclick="myFuncClose()">Закрыть</a></html>
|
Неработате. Подскажите, пожалуйста, как должно быть правильно.
А как сделать, чтобы при скролинге окошко не резко перемещалось в центр, а плавно двигалось к центру?
И последнее(не сочтите за наглость, пожалуйста), как сделать, чтобы например если юзер нажал кнопу закрыть, то это окошко не показывалось ему, например час? А потом по прошествии часа(или другого временного интервала показывалось ему?
Заранее всем ГИГАНТСКОЕ спасибо! | |
|
|
|
|
|
|
|
для: locker_fx
(17.02.2008 в 09:14)
| | Можно. Измените вот так:
var ROKNO, KREST, oLeft, oTop, ROKNO_width, KREST_width, KREST_height;
function myFuncBodyScroll ()
{
ROKNO.style.left = document.body.scrollLeft + oLeft + 'px';
ROKNO.style.top = document.body.scrollTop + oTop + 'px';
KREST.style.left = document.body.scrollLeft + (oLeft + ROKNO_width - KREST_width) + 'px';
KREST.style.top = document.body.scrollTop + (oTop - KREST_height - 2) + 'px';
}
function myFuncOpen ()
{
//определение объектов
ROKNO = document.getElementsByName ('myReklama') [0];
KREST = document.getElementById ('myClose');
//установка размеров рекламного окна и размеров "крестика"
var ROKNO_height = 234; //(нужный вам размер, в пикселях, см. п.1)
ROKNO_width = 345; //(нужный вам размер, в пикселях, см. п.1)
KREST_height = 21; //(нужный вам размер, в пикселях, см. п.2)
KREST_width = 43; //(нужный вам размер, в пикселях, см. п.2)
ROKNO.style.height = ROKNO_height + 'px';
ROKNO.style.width = ROKNO_width + 'px';
KREST.style.height = KREST_height + 'px';
KREST.style.width = KREST_width + 'px';
//определение размеров окна браузера и центрирование рекламного окна и "крестика"
var Hbody = document.body.clientHeight;
var Wbody = document.body.clientWidth;
oLeft = parseInt ((Wbody - ROKNO_width ) / 2, 10);
oTop = parseInt ((Hbody - ROKNO_height) / 2, 10);
myFuncBodyScroll ();
//делаете рекламное окно и крестик видимыми
ROKNO.style.display = 'block';
KREST.style.display = 'inline';
}
function myFuncClose ()
{
document.getElementsByName ('myReklama') [0].style.display = 'none';
document.getElementById ('myClose').style.display = 'none';
}
document.open();
document.write('<iframe name="myReklama" frameborder="0" src="reklama.html" style="z-index: 999; position: absolute; display: none" onload="myFuncOpen()"></iframe>');
document.write('<img id="myClose" src="close.gif" style="z-index: 999; background-color: red; position: absolute; cursor: pointer; display: none" onclick="myFuncClose()" />');
document.close();
document.onscroll = myFuncBodyScroll;
|
Не забудьте убрать <script> и </script> из конечного файла | |
|
|
|
|
|
|
|
для: CNTv2.0
(16.02.2008 в 23:30)
| | Огромное вам спасибо!
Это то что нужно. Но вот возникла проблема. У меня есть файл, допустим index.html
Он состоит из:
<html>
<head>
<title>ТИТЛ</title>
</head>
<script language="JavaScript" src="okno.js"></script>
<body>
Контент
Контент
Контент
</body>
<html>
|
Т.е. необходимо всё что касается окна запихать в okno.js . Менять основной файл index.html нельзя!
Это реально(Если нельзя 100%, то хотябы частично)?
Буду очень благодарен за помощь!
P.S. Отдельная кнопка для закрытия впринципе не нужна, можно, как в предыдущём примере, просто строка "закрыть" в самом окне.
P.P.S. т.к. в <body> добавить onscroll не получиться(основной файл менять нельзя), а подругому обработать onscroll ИМХО не получиться(если получиться, то это очень хороршо!), может стоит по таймеру позиционировать окно, например раз в секунду? | |
|
|
|
|
|
|
|
для: CrazyAngel
(16.02.2008 в 23:07)
| | Да оно, но чуток функционал расширить надо. | |
|
|
|
|
|
|
|
для: locker_fx
(16.02.2008 в 21:03)
| | 1. готовите файл reklama.html (то, что будет внутри рекламного окна) и определяете его точные геометрические размеры (ширину, высоту).
Для примера я использовал код этого файла:
<html><body bgcolor="navy"></body></html>
|
2. готовите файл close.gif , где будет крестик (и надпись "Закрыть") - лучше, ИМХО, сделать его на прозрачной основе. Запоминаете его точные геометрические размеры (ширину, высоту).
Для примера я прописал в стилях для этого рисунка цветную подложку (background-color: red)
3. Пример кода (валидный в MSIE, FireFox, Opera):
<html>
<head>
<script>
var ROKNO, KREST, oLeft, oTop, ROKNO_width, KREST_width, KREST_height;
function myFuncBodyScroll ()
{
ROKNO.style.left = document.body.scrollLeft + oLeft + 'px';
ROKNO.style.top = document.body.scrollTop + oTop + 'px';
KREST.style.left = document.body.scrollLeft + (oLeft + ROKNO_width - KREST_width) + 'px';
KREST.style.top = document.body.scrollTop + (oTop - KREST_height - 2) + 'px';
}
function myFuncOpen ()
{
//определение объектов
ROKNO = document.getElementsByName ('myReklama') [0];
KREST = document.getElementById ('myClose');
//установка размеров рекламного окна и размеров "крестика"
var ROKNO_height = 234; //(нужный вам размер, в пикселях, см. п.1)
ROKNO_width = 345; //(нужный вам размер, в пикселях, см. п.1)
KREST_height = 21; //(нужный вам размер, в пикселях, см. п.2)
KREST_width = 43; //(нужный вам размер, в пикселях, см. п.2)
ROKNO.style.height = ROKNO_height + 'px';
ROKNO.style.width = ROKNO_width + 'px';
KREST.style.height = KREST_height + 'px';
KREST.style.width = KREST_width + 'px';
//определение размеров окна браузера и центрирование рекламного окна и "крестика"
var Hbody = document.body.clientHeight;
var Wbody = document.body.clientWidth;
oLeft = parseInt ((Wbody - ROKNO_width ) / 2, 10);
oTop = parseInt ((Hbody - ROKNO_height) / 2, 10);
myFuncBodyScroll ();
//делаете рекламное окно и крестик видимыми
ROKNO.style.display = 'block';
KREST.style.display = 'inline';
}
function myFuncClose ()
{
document.getElementsByName ('myReklama') [0].style.display = 'none';
document.getElementById ('myClose').style.display = 'none';
}
</script>
</head>
<body onscroll="myFuncBodyScroll ()">
<iframe name="myReklama" frameborder="0" src="reklama.html" style="z-index: 999; position: absolute; display: none" onload="myFuncOpen ()"></iframe>
<img id="myClose" src="close.gif" style="z-index: 999; background-color: red; position: absolute; cursor: pointer; display: none" onclick="myFuncClose ()">
<!-- имитация "большого" (имеющего скроллы) содержимого тела документа -->
<div style="width: 234%; height: 345%">content</div>
</body>
</html>
|
То, что обязательно должно присутствовать в HTML-коде, выделено жирно.
Прочее (название файлов, стили и т.д.) - на ваше усмотрение. | |
|
|
|
|
|
|
|
для: locker_fx
(16.02.2008 в 21:03)
| |
<?php
<html>
<head>
<style>
#bla {
position: fixed;
top: 25%;
left: 25%;
width: 50%;
height: 50%;
border: 10px solid #fff;
background-color: #f0f0f0;
z-index:1002;
overflow: auto;
}
</style>
</head>
<body>
<div id='bla'>
<a href='#' onclick="document.getElementById('bla').style.display='none'; return false;">Закрыть</a><br>
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама Реклама
</div>
</body>
<html>
?>
|
оно? | |
|
|
|
|
|
|
|
для: вялый
(16.02.2008 в 21:30)
| | Вот как заработаю так и вознаграждение будет...
На чём вы думаете я заработаю??? Мне это нужно для учёбы | |
|
|
| |
|