Рандомные всплывающие окна при заходе на сайт
Всем здравствуйте. С JS особо не знаком, поэтому за проделанную работу готов немного заплатить.
Вообщем задача такая. Есть сайт. Нужно сделать всплывающие окна с рандомным содержимым. Например, заходим на сайт, через некоторое время (рандомно от 10 до 30 сек) открывается окошко, как уведомления в ВК, и показывается подготовленная рандомная запись. Через 5 секунд оно автоматически исчезает. Затем снова через 20-60 сек появляется следующая рандомная запись и так далее по кругу. Желательно, чтобы эти записи находились в отдельном документе (текстовом файле) и их легко можно было дополнять новыми записями. Может есть уже готовое решение, но в инете не нашел. Буду благодарен ответившим. |
Цитата:
Сколько это в цифрах? |
Работа на самом деле не сложная, можно докрутить какие-нибудь готовые скрипты. Поэтому в цифрах - 200 руб. на телефон, Qiwi-кошелек или Webmoney. ksa, возьметесь за работу?:)
|
Почти готовое решение https://github.com/cyberua/multiPopupJS
|
cyber, не совсем то, нет рандомности, модальное окно автоматически не скрывается. Сможете докрутить под мои нужды?
|
MrNix21, не, мне влом, мой скрипт почти реализует то что вам нужно, добавить рандомность и все)
|
Ну, 200р маловато. Если подчитывать записи из отдельного файла,нужно через ajax+PHP это организовать.
email: mshdn@rambler.ru skype: mshendn |
mshdn, почему php? Можно ведь просто создать txt файл с записями с уникальными идентификаторами и оттуда тянуть с помощью ajax
|
Цитата:
|
cyber, окей. Пусть записи будут в этом же документе. Задача от этого многократно облегчается. Ведь так?
|
Цитата:
|
cyber, может все таки возьметесь за оплачиваемую работу:)
|
Кстати можно сделать одна запись - один файл. Так ведь тоже не сложно. Например, делаем папку news, а там записи news1.txt, news2.txt и т.д. Но все равно без ajax не обойтись.
|
А в чём проблема сделать отдельным файлом? Всё JSON`ом сделать и получать через get запрос.
MrNix21, Какую систему модальных окон Вы используете?
(function() {
var data;
function rand(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
function start() {
setTimeout(showWindow, rand(1E3, 3E3));
};
function showWindow() {
var message = data[rand(0, data.length - 1)];
alert(message);
start();
};
$.get('myfile.json', function(json) {
data = JSON.parse(json);
start();
});
})();
myfile.json:
[
"Text 1",
"Text 2",
"Text 3",
"Text 4",
"Text 5"
]
|
Ruslan_xDD, как я понимаю, при таком способе будет появляться системное окошко, которому нельзя будет дать стили
|
MrNix21, да, а теперь замените его на тот скрипт что я дал или другой подобный и будет вам счастье
|
MrNix21, замените alert на вызов вашего модельного окна.
|
cyber, благодарю Вам за подсказки, но как я говорил еще в самом начале, особо не разбираюсь в JS. Поэтому и готов заплатить тому, кто сможет все это реализовать.
|
Ruslan_xDD, я не в силах это сделать)))))
|
MrNix21, ну тогда подождите того кто воземется, я дал почти рабочий пример его нужно не много подправить)
|
Цитата:
|
Нашел вот такой код, он работает. Осталось только рандомность для времени между показами и для самих записей добавить. Подскажете как?
$(document).ready(function(){
var i = 0;
function moddiv(){
i=1;
$('.moddiv:nth-child('+i+')').fadeIn(500).delay(7000).fadeOut(500);//В этой строчке в мс 500 - время анимации появления, 5000 - время задержки, 500 - время затухания уведомления соответсвенно
}
setTimeout(function(){
setInterval(
function(){
i=i+1;
if(i>10) i=1;//10 - количество уведомлений
$('.moddiv:nth-child('+i+')').fadeIn(500).delay(7000).fadeOut(500);//В этой строчке в мс 500 - время анимации появления, 5000 - время задержки, 500 - время затухания уведомления соответсвенно
},25000);//25000 - задержка в мс меду показами уведомлений
moddiv();
},10000);//10000 - задержка в мс перед показом первого уведомления
});
|
Цитата:
http://javascript.ru/Math.random |
ksa, благодарю. Использовал вот такую конструкцию, но не работает((((
$(document).ready(function(){
var i = 0;
function moddiv(){
i=Math.floor( Math.random() * (99 - 1 + 1) ) + 1;
$('.moddiv:nth-child('+i+')').fadeIn(500).delay(7000).fadeOut(500);//В этой строчке в мс 500 - время анимации появления, 5000 - время задержки, 500 - время затухания уведомления соответсвенно
}
setTimeout(function(){
setInterval(
function(){
i=i+1;
if(i>100) i=1;//100 - количество уведомлений
$('.moddiv:nth-child('+i+')').fadeIn(500).delay(7000).fadeOut(500);//В этой строчке в мс 500 - время анимации появления, 5000 - время задержки, 500 - время затухания уведомления соответсвенно
},Math.floor( Math.random() * (40000 - 20000 + 1) ) + 20000);//25000 - задержка в мс меду показами уведомлений
moddiv();
},Math.floor( Math.random() * (20000 - 10000 + 1) ) + 10000);//10000 - задержка в мс перед показом первого уведомления
});
|
Цитата:
i=<значение>; :D Цитата:
|
Цитата:
|
Цитата:
|
ksa, что поделаешь, такой уж я чайник :D Нашел то что работает, но не могу доделать под свои задачи
|
| Часовой пояс GMT +3, время: 13:14. |