powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Запуск двух и более таймеров на сате.
25 сообщений из 100, страница 2 из 4
Запуск двух и более таймеров на сате.
    #39005047
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, выставляется определённое время на каждый таймер два,три часа и.д. Вы зашли на сайт нажали ссылку посмотрели её а затем пошёл отсчёт времени. Вот мне и нужно чтобы таймер не сбрасывался.то есть в момент начала отсчета Вы можете вычислить дату и время его окончания и сохранить на сервере

Если я пользователь, посмотрел ссылку и у меня три часа для какого-то решения, то я ведь могу вообще выключить комп и уйти на час.
По возвращению должно остаться два часа?
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005055
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, в принципе да. Но я ведь не знаю в какое время перейдут по ссылке и она сработает. Я могу выставить определённое время на таймер допустим 1 час 40 минут и всё. Таймер обратного отсчёта могут запустить когда угодна после перехода.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005058
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTz, если Вы не можете контролировать действия пользователя на Вашем сайте, то к чему вся эта возня с таймерами?
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005066
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, мне нужен этот таймер.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005071
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, мне нужен этот таймер.тогда толком объясните, зачем
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005077
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, таймер на первой странице возьмите запустите его и всё увидите.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005078
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, таймер на первой странице возьмите запустите его и всё увидите.
те словами задачу описать - никак?
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005081
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил, да я уже написал. Ровно неделю пытался собрать этот таймер и сегодня его написали толком. Пишу ещё раз. Вы зашли на сайт увидели много ссылок нажали на одну из них перешли по адресу который указан в ссылке в это время сработал таймер обратного отсчёта для этой ссылки, вернулись назад и увидели оставшееся время допустим 2 часа 15 мин. закрыли браузер вернулись через энное время и увидели что оно закончилось опять нажали и перешли по ссылке. Я уже не знаю как описывать ещё.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005082
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTz, в чем смысл таймера? Для красоты что-ли? :)
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005086
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, да не важно в чём смысл. Смысл в том возможно ли это реализовать? И как?
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005087
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или ссылка не доступна в течение 2 часов 15 минут?

Тогда как я писал выше: сохраняете дату и время на сервере и пока оно не наступило, не рендерите ссылку на странице.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005088
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, да вот именно что ссылка должна быть доступно всегда.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005090
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, да не важно в чём смысл. Смысл в том возможно ли это реализовать? И как?Да, через сервер. Реализация зависит от того, доступ к чьим ссылкам Вам необходимо ограничить. К своим, или к чужим?
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005092
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, ограничение ссылок нет. Заходи сколько хочешь.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005094
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, ограничение ссылок нет. Заходи сколько хочешь.Ссылки-то ведут на Ваши ресурсы? А зачем за ними следить?

Хотя не важно. Сохраняете на сервере информацию о переходах.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005100
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, спасибо конечно. Если бы я ещё знал как это делается.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005102
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, спасибо конечно. Если бы я ещё знал как это делается.Ну либо пишется клиентский код, что обрабатывает переходы по ссылкам и отсылает информацию на сервер, либо серверный код, если ресурсы Ваши.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005105
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, ох нашёл вот такой способ через jQuery Cookie не знаю будет он работать или нет.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005107
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzskyANA, ох нашёл вот такой способ через jQuery Cookie не знаю будет он работать или нет.Мы уж тем более не знаем.

Cookie в пару кликов можно почистить. Можно браузер запускать в режиме инкогнито.
Но если Вам надо показать таймер, лишь бы показать, то cойдут и Cookie.

Принцип тот же: вычисляете дату окончания отсчёта, сохраняете.
При загрузке страницы читаете, если ещё актуальна, то показываете таймер.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005109
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA, я сейчас смотрю вот это http://frontcamp.com/2013/02/01/free-javascript-countdown-mu-timer-10/#.VaEc1LW3q2k


Но не пойму как привязать к моему таймеру.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005232
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе попробовал переделать таймер. Как мне подсказали на форуме есть три варианта выбрал один из них. Теперь не могу разобраться где ошибка.


Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<html>
<head>
     <meta charset = "utf-8">
    <title>111</title>
    
 <style>
  .st{background-color:blue; 
      color:white;}
  .sp{background-color:red; 
      color:white;}
</style>
</head>  
    <body>

<table border="0" cellpadding="0" cellspacing="0" bordercolor="#00000">
<tr><td><div class="st" id="tm"></div>00:00:00</td></tr> 
<input type="button" value="mail" onclick="startTimer('tm');Sl()" >



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
<script>
    
      var hr = "00";
      var ms = "00";
      var sc = "17";
       
    var hours = hr;
    var minutes = ms;
    var sec = sc;
    
    var Timer = function(element, hours, minutes, sec){
    var me = this;
    this.hours = hours;
    this.minutes = minutes;
    this.sec = sec;
    this.element = element;
    this.interval = null;
    
     
    this.reduce = function() {
        if(me.hours + me.minutes + me.sec <= 0) {
            me.stop();
            return;
        }
        me.sec-=1;
        if(me.sec<0) me.sec=59,me.minutes-=1;
        if(me.minutes<0) me.minutes=59,me.hours-=1; 
        if(me.hours<0) me.hours=23;
        
        localStorage.setItem('hours5', me.hours);
        localStorage.setItem('minutes5', me.minutes);
        localStorage.setItem('sec5', me.sec);
        
        me.sec = me.sec+"";
        me.minutes = me.minutes+"";
        me.hours = me.hours+""; 
        if (me.sec.length<2) me.sec = "0"+me.sec;
        if (me.minutes.length<2) me.minutes = "0"+me.minutes;
        if (me.hours.length<2) me.hours = "0"+me.hours;
        me.element.innerHTML=me.hours+":"+me.minutes+":"+me.sec; 
    }
     
    this.start = function(){      
        me.interval = setInterval(me.reduce, 1000);
        me.element.className="sp"
    }
    this.stop = function(){
        clearInterval(me.interval);
        me.element.className="st"
    }    
}
function Sl()
    {window.open('https://mail.ru/','_blank');}  
    
function startTimer(obgId) {
  /*  if(localStorage.getItem('sec5') > 0)
    {return;};*/
    
   if (localStorage.getItem('sec5') != NaN && localStorage.getItem('sec5') ==0) {
            hours = hr;
            minutes = ms;
            sec = sc; 
        
        localStorage.setItem('hours5', hr);
        localStorage.setItem('minutes5', ms);
        localStorage.setItem('sec5', sc); 
                 
        document.getElementById('tm').innerHTML = hours+":"+minutes+":"+sec; 
        };  
         
var timer = new Timer(document.getElementById(obgId), hours, minutes, sec);
    timer.start();
}  
</script>
                  
            
      <script>
          
        if (localStorage.getItem('sec5') != NaN && localStorage.getItem('sec5') !=0) {
           var hours = localStorage.getItem('hours5');
           var minutes = localStorage.getItem('minutes5');
           var sec = localStorage.getItem('sec5'); 
             sec = sec+"";
               if (sec.length<2) sec = "0"+sec;            
     }    
          document.getElementById('tm').innerHTML = hours+":"+minutes+":"+sec;   
        </script>
            
</body>
    </html>
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005238
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zFARTz,
лови:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
<!DOCTYPE html>
<html>
<head>
<style>
div {
	  
	margin: 20px;
}
div>button{
	width: 100px;
	height: 50px;
}
div>span{
font: italic small-caps bolder 30px cursive;
}
</style>
	<title></title>
<script type="text/javascript">

    /*** Конфигурация***/			
var config={
	'timer1':{'hours':0, 'minutes':1, 'sec':05,'url':'http://mail.ru'},
	'timer2':{'hours':0, 'minutes':2, 'sec':10,'url':'http://google.ru'},
	'timer3':{'hours':0, 'minutes':3, 'sec':10,'url':'http://yandex..ru'},
	}
	/*** конец Конфигурация***/

	/***Форматируем вывод**/
function Display(hours,minutes,sec){
	sec+="";
    minutes+="";
    hours+=""; 
    if (sec.length<2) sec="0"+sec;
    if (minutes.length<2) minutes="0"+minutes;
    if (hours.length<2) hours="0"+hours;
    return hours+":"+minutes+":"+sec;
}
	/***конец Display**/

/**********************Прототип таймера*********************************/
	
function Timer(config,element){

	var self = this;
    this.hours = config['hours'];
    this.minutes = config['minutes'];
    this.sec = config['sec'];
    this.interval = null;
    this.element=element;

	 
	 this.stop=function() { //Сброс таймера
		clearInterval(self.interval);
		self.interval=null; 
	}
	
	
	this.start= function(){ //Запуск таймера
		self.interval = setInterval(function (){ //Пересчет времени таймера
		self.sec-=1;

	    if(self.sec<0) {self.minutes-=1;self.sec=59};
        if (self.minutes<0) {self.hours-=1;self.minutes=59,self.sec=59};
        if (self.hours<0) {self.hours=0;self.minutes=0;self.sec=0;}

        self.element.innerHTML=Display(self.hours,self.minutes,self.sec);

        if(self.hours + self.minutes + self.sec==0) return; //"0"-выход
             
		}, 1000);
	}

	this.toogle=function() {  //переключатель старт/стоп
		!self.interval?self.start():self.stop();
	}
}
	
/*******************конец Прототип таймера*************************/

/*******************main-главный объект****************************/ 
	 var main={
		 arr:[],
		remove:function(){ //удаление таймеров из объектов
		    for(var key in this.arr){
				obj=this.arr[key];
				//console.log(obj);
				if ((obj.hours+obj.minutes+obj.sec)==0){
					delete this.arr[key];
				}
			}
		console.log(this.arr);	
		}

	}
/*******************end Object main********************************/

window.onload=function(){

	buttons=document.getElementsByClassName("timer"); //коллекция button

		for(var i=0;i<buttons.length;i++){
		 var buttonId=buttons[i].getAttribute("id");//id 	
		 var span=buttons[i].getElementsByTagName("span")[0]; 

		 span.innerHTML=Display(config[buttonId]['hours'], 
		 						config[buttonId]['minutes'],
		 						config[buttonId]['sec']
		 						) //вывод начального времени 
		 							
		 
			buttons[i].firstElementChild.onclick= function(span){
			return function(e){  
					e=e||window.event;
					id=e.target.parentNode.getAttribute("id"); //id таймера	
					console.log(id);
					if(!main.arr[id]){ //Если таймера нет,создаем
						newTimer=new Timer(config[id],span);
						main.arr[id]=newTimer;
						
					}else{  newTimer=main.arr[id]; //иначе вызваем таймер
						
					}

					newTimer.toogle(); //запускает тригер объекта
					//console.log(newTimer);
				}
			}(span);	
		}
}

setInterval("main.remove()",1000);
</script>
</head>
<body>
<div id="timer1" class="timer">
		<button id="s1">Click</button>
		<span id="sp1"></span>
</div>
<div id="timer2" class="timer">
		<button id="s2">Click</button>
		<span id="sp2"></span>
</div>
<div id="timer3" class="timer">
		<button id="s3">Click</button>
		<span id="sp3"></span>	
</div>
</body>
</html>
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005250
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey, спасибо конечно но немного не то.
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005253
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zFARTzkunaksergey, спасибо конечно но немного не то.:)

Может таки стоит толком и подробно объяснить, а что нужно-то?
Думаете кому-то интересно писать для Вас кучу кода, потом переделывать то, что "немного не то" и дописывать "а вот еще осталось это теперь прикрутить"?
...
Рейтинг: 0 / 0
Запуск двух и более таймеров на сате.
    #39005254
zFARTz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного изменил но код просто стал запоминать значение после перезагрузки а мне нужно чтобы отсчёт шёл дальше. Неужели никто не знает как помочь бедному человечку? Мне другие таймеры не нужны. Нужен именно этот.



Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<html>
<head>
     <meta charset = "utf-8">
    <title>111</title>
    
 <style>
  .st{background-color:blue; 
      color:white;}
  .sp{background-color:red; 
      color:white;}
</style>
</head>  
    <body>
  <table border="0" cellpadding="0" cellspacing="0" bordercolor="#00000">
<tr><td><div class="st" id="tm"></div></td></tr> 
<input type="button" value="mail" onclick="startTimer('tm');Sl()" >



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
<script>
    
      var hr = "00";
      var ms = "00";
      var sc = "17";
       
    var hours = hr;
    var minutes = ms;
    var sec = sc;
    
    var Timer = function(element, hours, minutes, sec){
    var me = this;
    this.hours = hours;
    this.minutes = minutes;
    this.sec = sec;
    this.element = element;
    this.interval = null;
    
     
    this.reduce = function() {
        if(me.hours + me.minutes + me.sec <= 0) {
            me.stop();
            return;
        }
        me.sec-=1;
        if(me.sec<0) me.sec=59,me.minutes-=1;
        if(me.minutes<0) me.minutes=59,me.hours-=1; 
        if(me.hours<0) me.hours=23;
        
        localStorage.setItem('hours5', me.hours);
        localStorage.setItem('minutes5', me.minutes);
        localStorage.setItem('sec5', me.sec);
        
        me.sec = me.sec+"";
        me.minutes = me.minutes+"";
        me.hours = me.hours+""; 
        if (me.sec.length<2) me.sec = "0"+me.sec;
        if (me.minutes.length<2) me.minutes = "0"+me.minutes;
        if (me.hours.length<2) me.hours = "0"+me.hours;
        me.element.innerHTML=me.hours+":"+me.minutes+":"+me.sec; 
    }
     
    this.start = function(){      
        me.interval = setInterval(me.reduce, 1000);
        me.element.className="sp"
    }
    this.stop = function(){
        clearInterval(me.interval);
        me.element.className="st"
    }    
}
function Sl()
    {window.open('https://mail.ru/','_blank');}  
    
function startTimer(obgId) {
  /*  if(localStorage.getItem('sec5') > 0)
    {return;};*/
    
   if (localStorage.getItem('sec5') != NaN && localStorage.getItem('sec5') ==0) {
            hours = hr;
            minutes = ms;
            sec = sc; 
        
        localStorage.setItem('hours5', hr);
        localStorage.setItem('minutes5', ms);
        localStorage.setItem('sec5', sc); 
                 
        document.getElementById('tm').innerHTML = hours+":"+minutes+":"+sec; 
        };  
         
var timer = new Timer(document.getElementById(obgId), hours, minutes, sec);
    timer.start();
}  
</script>
        
            
            
      <script>
          
              var tt = localStorage.getItem('sec5');
  
    
    if (isNaN(tt) || localStorage.getItem('sec5') ==null){
        localStorage.setItem('hours5', hours);
       localStorage.setItem('minutes5', minutes);
       localStorage.setItem('sec5', sec);
    }
          
          
        if (localStorage.getItem('sec5') !=0) {
           hours = localStorage.getItem('hours5');
           minutes = localStorage.getItem('minutes5');
           sec = localStorage.getItem('sec5'); 
             sec = sec+""
               if (sec.length<2) sec = "0"+sec;   
            
     }    
          document.getElementById('tm').innerHTML = hours+":"+minutes+":"+sec;   
        </script>
            
</body>
    </html>
...
Рейтинг: 0 / 0
25 сообщений из 100, страница 2 из 4
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Запуск двух и более таймеров на сате.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]