|
|
|
| Ребят, помогите сделать задержку открытия на минуту после бездействия пользователя
<script type="text/javascript" src="swfobject.js"></script>
<DIV align="center" id="flashcontent" style="Z-INDEX: 10; LEFT: 300px; WIDTH: 450px; POSITION: absolute; TOP: 0px; HEIGHT: 70px">
net
</div>
<script type="text/javascript">
var imgWidth = screen.width - '5px';
var imgHeight = screen.height;
var so = new SWFObject("sneg.swf", "mymovie", "1024", "600", "9");
so.addParam("allowScriptAccess", "always");
so.addParam("wmode", "transparent");
so.write("flashcontent");
function kill() {
document.getElementById("flashcontent").style.display = "none";
}
</script>
|
| |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 02:59)
| | Вы сперва определитесь, что в вашем случае бездействие пользователя. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 03:17)
| | В моем понимании бездействие когда мышь не активна, ведь так? | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 03:19)
| | Что значит не активна? | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 03:21)
| | в смысле пользователь не водит мышью, отошел к примеру, ничего не делает | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 03:23)
| | А если я бесцельно буду водить мышкой, то значит я чего-то делаю?
Вы уж конкретезируйте, чего вы хотите от пользователя. Если он при открытии страницы должен сделать нечто, как то ввести что-то в поле ввода, при этом фокус может быть уже установлен, а значит и двигать мышкой нет надобности. Либо чего-то щелкнуть и т.п. А двигать мышкой ради того, чтобы не появлялось бог весть что, возможно ему сосвем не нужное, так это утомительно.
Вот из этого как-то исходить - то есть, одноразовая это задача или нет, что должно происходить если он выполнит условие...
А на двигать, так это обрабатывайте событие движения мыши у тела документа (body). | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 03:30)
| | таймер должен начинать отчет после того как мышь не двигается минуту и больше, не важно были ли клики или нет, главное что мышь не двигалась минуту, вот так | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 03:35)
| | Так как вы хотите сделать не возможно, вы можете только запустить таймер по окончании загрузки страницы, который можно остановить движением мыши, и если в течении минуты такового не произошло, то запустить задачу. А вот дальше... | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 03:40)
| | а вот дальше мне и нужно( | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 03:46)
| | А дальше я не в курсе чего вам надо. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 03:48)
| | мне нужно открыть флеш объект через заданное время, тот, который я показал выше, можно ли так сделать? | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 03:50)
| |
<html>
<head>
<script type="text/javascript">
function fn() {
alert("Событие по таймеру");
}
function clr() {
clearTimeout(tm);
document.body.removeEventListener("mousemove", clr, false);
alert("Сброс таймера и обработчика мыши");
}
var tm;
function init() {
tm = setTimeout('fn()', 1000); //время в милисекундах
document.body.addEventListener("mousemove", clr, false);
}
</script>
</head>
<body onload="init()">
TEXT TEXT <br />
TEXT TEXT <br />
TEXT TEXT <br />
TEXT TEXT <br />
TEXT TEXT <br />
TEXT TEXT <br />
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 04:37)
| | Спасибо за быструю помощь, я маленько скрипт переделал под себя
<html>
<head>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
function fn() {
alert("Событие по таймеру");
}
function clr() {
clearTimeout(tm);
document.body.removeEventListener("mousemove", clr, false);
document.getElementById("flashcontent").style.display = "none";
}
var tm;
function init() {
tm = setTimeout('i()', 5000); //время в милисекундах
document.body.addEventListener("mousemove", clr, false);
}
</script>
</head>
<body onload="init()">
<DIV align="center" id="flashcontent" style="Z-INDEX: 10; LEFT: 0px; WIDTH: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 0px">
net
</div>
<script type="text/javascript">
function i()
{
var so = new SWFObject("sneg.swf", "mymovie", "1177", "600", "9");
so.addParam("allowScriptAccess", "always");
so.addParam("wmode", "transparent");
so.write("flashcontent");
}
function kill() {
document.getElementById("flashcontent").style.display = "none";
}
</script>
</body>
</html>
|
теперь все работает хорошо, вот только с таймером не получилось, он начинает отчет, когда я обновляю страницу и ничего не делаю, тогда объект открывается через 5 секунд, когда мышью начинаю водить, срабатывает эта функция
function clr() {
clearTimeout(tm);
document.body.removeEventListener("mousemove", clr, false);
document.getElementById("flashcontent").style.display = "none";
}
|
после этого нужно снова обновлять страницу и не водить мышью и все будет работать
можно ли сделать так, что бы отчет начинался с того момента, как я перестаю водить мышью по странице? | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 15:32)
| | Да, переделка сердитая )
1. В функции fn и должно выполняться действие вам нужное, и коли вы переназначили имя функции, то выбросите вы ее за ненадобностью.
2. Так вы и указали время 5 сек. Я ведь написал, что время в милисекундах, а в одной секунде их 1000. Вопрос, сколько милисекунд вам надо указать, чтобы была 1 минута? Две секунды в примере, это просто для того, чтобы вы "пощупали" и поняли, а для этого ждать минуту слишком....
>можно ли сделать так, что бы отчет начинался с того момента, как я перестаю водить мышью по странице?
Вы хотите чтобы вас метерили? Вот как вы себе это представляете? И что вы аля html-хранитель экрана делаете? | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 15:39)
| | минута в миллисекундах будет 60000 , function i() у меня выполняется только один раз, я обновляю страницу и ничего не делаю, она срабатывает, при наведение мыши на объект он исчезает(как и нужно), но когда я останавливаю мышь, эта функция больше не срабатывает(, как переделать что бы отсчет начинался тогда, когда я останавливаю мышь? | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 15:47)
| | Значит так - этот пример запускает нечто по истечении указанного времени начиная с окончания загрузки страницы, и выполяется это ОДИН РАЗ. Если за установленное время пользователь передвинет мышь, то ЭТО не будет выполнятся вообще!
Именно так и стоял у вас вопрос изначально. Тепереча вы ставите его так - "кровь из носа, но мне очень хочется показать некую свою хрень пользователю". Вопрос - вы это хотите показывать бесконечно? Лично мне бы такая хрень до того надоела, что я бы вас пристрелил к чертовой матери. )
И так, что вам надо? | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 15:53)
| | извиняюсь за свою тупость изначальную(,
вобщем нужно что бы отчет шел с того момента, когда мышь перестает быть активной и тогда запускается нечто, к примеру пододвинул мышь, она остановилась, значит начинается отчет, снова пододвинул, отчет начинается заново и так все время, вот что мне нужно было с самого начала(
еще раз извиняюсь | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 15:58)
| | Давайте так - я пользователь, я говорю так, как мне было бы удобно, а вы уж приготовьте сценарий четкий, ибо "когда мышь перестает быть активной...", это понятие резиновое.
И так, если я установлю у себя хранитель экрана на срабатываете через одну минуту, то согласитесь, что я буду вынужден двигать неистово мышкой, чтобы он мне не мешал. Ведь я просто могу читать, а не обязательно что-то выполнять мышью.
Теперь я открываю вашу страницу. Что должно произойти, начиная с этого момента, через какое время и по отсутствию чего со стороны пользователя, чтобы запустить нечто? Вы не допускаете, что он чем-то заинтересуется у вас и будет читать, зачем ему мышкой двигать? А тут через минуту, ни жданно, ни гаданно на тебе сюрприз. Вот как это будет по вашему, нормально?
Я уже понял, лично мне вы хотите надоесть своим показом, я не обязан, да и не хочу постоянно мышкой двигать, как другие не знаю. Вот решайте теперь. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 16:13)
| | Вы не будете вынуждены двигать мышью все время так, как время я думаю достаточно(хотя его можно и увеличить),вот
с того момента как я или Вы или кто либо другой зайдет на страницу в любом случае он будет водить мышью или крутить колесо мыши, вот к примеру Вам что то понравилось, читаете, но сколько времени у Вас это займет? за минуту можно много прочитать(или за две минуты), а мышь как я понимаю всегда в руке у пользователя и он, не произвольно водит ее, и я думаю что он не вынужден будет водить мышью что бы через заданное время открылось нечто, как думаете, если пользователь не водит мышью 2 минуты, что он делает? конечно может читать, но с помощью Вас скрипт так работает, что даже если вылезет нечто, то нужно будет всего лишь пододвинуть мышь что бы это нечто пропало
в конечном итоге я хотел что бы отчет времени начинался всегда после того как мышь не активна(в смысле не двигается) | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 16:27)
| | >Вы или кто либо другой зайдет на страницу в любом случае он будет водить мышью или крутить колесо мыши
Вы в этом уверены? Я нет, ибо я открывая страницы сайтов, которые постоянно читаю, я читаю анонсы, а их предостаточно входит в мое разрешение экрана. С какого ляду я обязательно должен крутить, двигать? Вы как программист, всегда должны предусматривать все "если", а не исходить из того, чего вам захотелось.
Вот если бы так же поступили разработчики Windows, так плевком на потолок прикинули, что а достаточно минуты две, и можно запускать хранитель экрана, и при этом не давать пользователю не изменить время, ни отключить его... Да вы бы мама орали постоянно от такого хранителя. А разработчики Windows подумали, и не так как вы, и посему дали возможность управлять временем, и вообще отключать хранитель экрана.
Сделать не сложно будет по мышке, но вы сперва определелитесь с пользователем - никогда не думайте, что все будут поступать именно так, как вы думаете, это в корне не верно. Вам ваш контент известен, определяйтесь. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 16:40)
| | что бы открылось нечто(хранитель экрана), пользователь не должен :
1. водить мишью
2. кликать (а если кликает, значит водит мышью)
3. крутить колесо мыши(а это снова движение мыши)
4. просто ничего не делать
исправте если что забыл
и таким образом все получиться, а если же пользователь остановится на странице на какое то время, то движение мыши(а это не сложно) вернет все обратно, и к тому же, если это нечто запустится никак не помешает чтению пользователя | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 16:59)
| | Здрастье ) А мне жу откуда знать, что у вас на странице и что может, и чего не может на ней делать пользователь? Я потому и написал - вы контент свой знаете, определяйтесь. Мне что гадать? Щелкнуть, для чего? Если ссылка, то это переход, какой тут разговор может идти о таймере. Если, к примеру, щелчок это открытие большого изображения, то бог его знает, что за изображение и сколько его рассматривать надо. В общем тут вы решаете, не я.
Ну если это нечто не на весь экран (а насколько я помню, именно вы в недавней теме такое хотели), то да, возможно и не помешает, но если.... В общем "если" заставляет серьезно призадуматься, как-то записывать в куку выбор пользователя "не показывать больше" или нечто другое. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 17:25)
| | один текст только, картинок всплывающих нет, подскажите с чем нужно разобраться, что бы функция
var tm;
function init() {
tm = setTimeout('i()', 5000); //время в милисекундах
document.body.addEventListener("mousemove", clr, false);
}
|
начинала отчет когда мышь стоит, могли бы помочь это сделать?
как я понимаю русским языком нужно написать условие если мышь стоит - выполнять эту функцию, как это реализовать? | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 17:35)
| | Все, что я писал выше, это пример, не более, чтобы только показать принцип. Он не будет работать в IE, так как этот браузер не так назначает обработчики событиям. Польностью код будет сложнее, поэтому я вас и просил определиться, чтобы не переписывать по нескольку раз, ибо у вас сам подход с бухты барахты, да еще уверенность в том, что это кого-то обрадует.
Если мышь стоит, то вообще ничего не происходит, а значит и ловить нечего. Если же вас только движение мыши интересует, то весь сценарий будет примерно таким:
1. сразу после открытия страницы запускается таймер (хотя в данном случае лучше Interval).
2. каждое движение мыши очищает интервал и вновь устанавливает его, назначая новое время
Вот и получится, что стоит остановить движение мышки, запустится задача. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 17:48)
| | у меня проблема с реализацией этого кода, а именно с условием, если мышь стоит сбросить интервал
if (если мышь стоит более одной минуты)
{
alert(получилось);
}
|
вот это дело не получается(. как будет правильно? подскажите, за ранее спасибо | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 17:56)
| | Если мышка стоит, то ничего не происходит, ловить нечего. Если обрабатывать только движение мышки, то вот так, просто:
<html">
<head>
<script type="text/javascript">
function showFlash() {
alert("Флешка");
}
function setTime() {
clearInterval(tm);
tm = setInterval('showFlash()', 2000);
}
var tm = setInterval('showFlash()', 2000);
if (window.addEventListener) // mozilla, safari, chrome
window.addEventListener('mousemove', setTime, false);
// IE, Opera.
window.onmousemove = document.onmousemove = setTime;
</script>
</head>
<body>
TEXT TEXT <br />
TEXT TEXT <br />
TEXT TEXT <br />
TEXT TEXT <br />
TEXT TEXT <br />
TEXT TEXT <br />
</body>
</html>
| Проверьте, должно работать во всех браузерах. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 18:05)
| | огромное спасибо за помощь!! переделал и работает + , только пока нет возможности на всех браузерах протестировать, еще хотел что бы объект открывался на всю страницу
new SWFObject("sneg.swf", "mymovie", "100%","100%","9","#336699");
|
чет не получается, но это я уже как нить сам, спасибо еще раз | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 19:05)
| | Все таки на всю страницу, ну, ну.... | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 19:06)
| | на всю страницу в смысле на окно браузера, а не на весь дисплей | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 19:06)
| | sim5
можна у вас помощи попросить?
попробовал коечто сделать но не выходит
буду благодарен за помощь
как остановить данный скрипт если мышка не шевелится минуту или две
window.setInterval(function () { // JavaScript Устанавливаем интервал запуска нашей функции
var lastmes = $("#message div:first-child").attr("id");
// берем id последнего потомка
$.ajax({
async: true,
url: "../blocks/showmessage.php", // указываем обработчик на стороне сервера
type: "POST", // указываем метод передачи данных
data: {lastmes: lastmes}, // передаем переменные
success: function (data) {if (data){
$("<div id=\""+(parseInt(lastmes)+1)+"\"></div>").prependTo("#message").html(data);};}
});
}, 5000);
|
пробовал так но чет не пашет
function showFlash() {
clearInterval(obnovljalka); //поместил верхний код в переменную обновлялка
alert('stop');
}
function setTime() {
clearInterval(tm);
tm = setInterval('showFlash()', 20000);
}
var tm = setInterval('showFlash()', 20000);
if (window.addEventListener) // mozilla, safari, chrome
window.addEventListener('mousemove', setTime, false);
// IE, Opera.
window.onmousemove = document.onmousemove = setTime;
|
| |
|
|
|
|
|
|
|
для: TavRoX
(16.01.2011 в 19:28)
| | Нет, по крайней мере на сегодня у меня все. Другие помогут. Могу только заметить, если вы используете jQuery, то писать надо было сразу все не так. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 20:13)
| | а можна каким либо образом желание вам повысить)
только отвечайте в отдельной теме, что бы тут не путать с авторской
буду очень рад если подтолкнете на путь истинный | |
|
|
|
|
|
|
|
для: TavRoX
(16.01.2011 в 20:16)
| | У меня одно желание - спать, так как у нас давно глубокая ночь.
А чтобы не мусорить, так это вам не стоит со своими вопросами вклиниваться в чужие темы. | |
|
|
|
|
|
|
|
для: sim5
(16.01.2011 в 15:39)
| | да почему же материли, минуты как раз хватит для того что бы знать что пользователь ничего не делает с мышью, поэтому открывается объект | |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 15:50)
| | у меня еще возник вопрос, как вставить screen.availWidth и screen.availHeight вместо 100%
new SWFObject("sneg.swf", "mymovie", "100%","100%","9");
|
| |
|
|
|
|
|
|
|
для: mister_pipin
(16.01.2011 в 20:04)
| | И что получится? Вы думаете таким образом ваша флешка "вывалится" на весь экран? Вы получите окно с прокруткой в двух измерениях, не более. Это окну вы такие параметры должны задавать, а размеру видео размер клиентской области окна. | |
|
|
|
|
|
|
|
для: sim5
(17.01.2011 в 04:15)
| | подскажите пожалуйста как поправить что бы в таком виде работало
new SWFObject("sneg.swf", "mymovie", "screen.availWidth","screen.availHeight","9");
|
за ранее спасибо | |
|
|
|
|
|
|
|
для: mister_pipin
(17.01.2011 в 07:56)
| | Работало что? Вам сколько раз повторять, что ваша флешка работает в окне браузера, а не сама по себе? | |
|
|
|
|
|
|
|
для: sim5
(17.01.2011 в 09:30)
| | в окне браузера она и работает, по другому никак(как Вы и говорили) , вот только сейчас проблема в том как ее растянуть на всю ширину? что бы не под свой дисплей а под все она растягивалась | |
|
|
|
|
|
|
|
для: mister_pipin
(17.01.2011 в 09:46)
| | А я не вам разве писал, что размеру видео вы должны присвоить размер клиентской области окна? Чего же вы тулите ему размеры экрана? | |
|
|
|
|
|
|
|
для: sim5
(17.01.2011 в 09:49)
| | мне нужно втулить как вы говорите размеры клиентской области экрана, размер экрана не нужно | |
|
|
|
|
|
|
|
для: mister_pipin
(17.01.2011 в 10:00)
| | От меня что нужно? Я вам приводил код, который позволяет открыть окно в свободной области экрана. Кроме этого показывал как растянуть окно на весь экран (хотя какждый браузер будет вести себя по разному в таких ситуациях). Чего вам еще надо? Указывайте размеры видео в процентах, путь растягиваются. | |
|
|
|
|
|
|
|
для: sim5
(17.01.2011 в 10:31)
| | с Вашей помощью я сделал что хотел, я пользуюсь ubuntu 10.10, на локальной машине у меня все работает, а как загружаю на сервер, чет не хочет, буду разбираться | |
|
|
|
|
|
|
|
для: mister_pipin
(17.01.2011 в 10:52)
| | JavaScript выполняется у клиента, и от сервера не зависит. Так что ищите причину не в нем. | |
|
|
|
|
|
|
|
для: sim5
(17.01.2011 в 11:21)
| | Спасибо что терпели меня все это время | |
|
|
|
|