Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.05.2016, 20:02
Новичок на форуме
Отправить личное сообщение для benutzen Посмотреть профиль Найти все сообщения от benutzen
 
Регистрация: 23.05.2016
Сообщений: 1

Удаление элемента документа по таймеру
Здравсвуйте , есть программа для стрима , называется BrоСhаt, которая собирает сообщения от зрителей с нескольких чатов и помещает их в один документ , который и отображается.
Как сделать так чтобы сообщения удалялись из документа если никто ничего не писал определенное время?

html

Код:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
		<link rel="stylesheet" href="transparent/transparent.css">
    </head>
    <script>
                var MESSAGE = "message";
                var STATISTIC = "statistic";
                
                var userScroll = false;
                
		function onWheel(event) 
		{
			event = event || window.event;

			var delta = -( event.deltaY || event.detail || event.wheelDelta );
			
			userScroll = document.body.scrollTop + window.innerHeight + delta < document.body.scrollHeight;                
			
			document.body.scrollTop = document.body.scrollTop + delta;
			
			event.preventDefault ? event.preventDefault() : (event.returnValue = false);
		}                
                
		function scrollToBottom()
		{
                        if( userScroll )
                                return;		
			document.body.scrollTop = document.body.scrollHeight;
		}	
		function onStatisticReceived( service, value )
		{
		}
        function onNewMessage( service, nickName, message, type )
        {	
			var serviceElem = document.createElement( "img" );
			serviceElem.className = service;
			
			var serviceBlock = document.createElement( "div" );
			serviceBlock.className = "service";
			serviceBlock.appendChild( serviceElem );
			
			var nickBlock = document.createElement( "div" );
			nickBlock.className = "nick";
			nickBlock.innerHTML = nickName + "<span class='separator'>:&nbsp;</span>";
			
			var headerkBlock  = document.createElement( "div" );
			headerkBlock.className = "header";
			headerkBlock.appendChild( serviceBlock );
			headerkBlock.appendChild( nickBlock );
			
			var messageBlock = document.createElement( "div" );
			messageBlock.className = "message";
			messageBlock.innerHTML = message;
			
			var messageBox = document.createElement( "div" );
			messageBox.className = "messagebox";
			
			messageBox.appendChild( headerkBlock );
			messageBox.appendChild( messageBlock );
			
			var messageType = document.createElement( "div" );
			messageType.className = type;
			messageType.appendChild( messageBox );
			
			var messagesList = document.getElementById( "messagesList" );
			
			if( type != "" )
			{
				messagesList.appendChild( messageType );
			}
			else
			{
				messagesList.appendChild( messageBox );
			}		
			scrollToBottom();			
        }
    </script>
    <body>
        <div id="messagesList"></div>
<script>
	setInterval( scrollToBottom, 500 );
        var messagesList = document.getElementById( "messagesList" );
        if (messagesList.addEventListener) 
        {
                if ('onwheel' in document) 
                {
                        // IE9+, FF17+, Ch31+
                        messagesList.addEventListener("wheel", onWheel);
                } 
                else if ('onmousewheel' in document) 
                {
                        // устаревший вариант события
                        messagesList.addEventListener("mousewheel", onWheel);
                } 
        }		
</script>		
<!--START_BROWSER_CODE-->
<script>	
	var wsUri = "ws://localhost:15619";
	var websocket = null;
	
	function initWebSocket() 
	{
		try 
		{
			if (typeof MozWebSocket == 'function')
				webSocket = MozWebSocket;
			if ( websocket && websocket.readyState == 1 )
				websocket.close();
			websocket = new WebSocket( wsUri );
			websocket.onopen = function (event) 
			{
				console.log( 'initWebSocket:open' );
			};
			websocket.onclose = function (event) 
			{
				setTimeout( initWebSocket, 3000 );
			};
			websocket.onerror = function (event) 
			{
				websocket.close();
			};
			websocket.onmessage = function (event) 
			{		
                                var message = JSON.parse( event.data );								
                        
                                //onNewMessage( "debug", "debug", message, "" );				
                        
                                if( MESSAGE == message.type )
                                {
                                        onNewMessage( message.message.service, message.message.nick, message.message.message, message.message.type );
                                        document.body.scrollTop = document.body.scrollHeight;
                                }
                                else if( STATISTIC == message.type )
                                {
                                        onStatisticReceived( message.statistic.service, message.statistic.statistic );
                                }
				document.body.scrollTop = document.body.scrollHeight;
			};					
		}
		catch (exception) 
		{
        }
	}
	initWebSocket();
	//setInterval(function() { document.body.scrollTop = document.body.scrollHeight; }, 500 );
</script>
<!--END_BROWSER_CODE-->
    </body>
</html>
css

Код:
@-webkit-keyframes slideAnim
{
	from{ margin-left: 100%; }
//	50%{ margin-left: -20%; }
//	70%{ margin-left: 15%; }
//	85%{ margin-left: -10%; }
//	95%{ margin-left: 5%; }
	to{ margin-left: 0%; }
}


html
{
	overflow: hidden;
}

body
{

	padding: 0px;
	margin: 0px;
}

#messagesList
{
}

.alias .messagebox
{
	color: rgb( 255, 128, 0 );
}

.ignore .messagebox
{
	color: rgb( 255, 128, 0 );
}

.support .messagebox
{
	color: rgb( 255, 128, 0 );
}

.messagebox
{
	font-family: Arial;
	font-weight: bold;
	line-height: 1.2em;
	font-size: 22px;
	background-color: rgba( 0,0,0, .2);
	color: rgb( 255, 255, 255 );
	width: 100%;
	text-shadow: 2px 2px rgba( 128,128,128, .5 );
	-webkit-animation: slideAnim .2s;

}

.header
{
	display: inline-block;
}

.message
{
	display: inline;
}

.service
{
	display: inline-block;
}

.nick
{
	display: inline-block;
	color: #1895da;
}

.smile
{
	height: 16px;
}

.picture
{
	width: 100%;
}

.aces
{
	content: url(../resources/aceslogo.png);
	height: 16px;
}

.cybergame
{
	content: url(../resources/cybergamelogo.png);
	height: 16px;
}

.funstream
{
	content: url(../resources/funstreamlogo.png);
	height: 16px;
}

.gamerstv
{
	content: url(../resources/gamerstvlogo.png);
	height: 16px;
}

.gipsyteam
{
	content: url(../resources/gipsyteamlogo.png);
	height: 16px;
}


.goodgame
{
	content: url(../resources/goodgamelogo.png);
	height: 16px;
}

.hitbox
{
	content: url(../resources/hitboxlogo.png);
	height: 16px;
}

.igdc
{
	content: url(../resources/igdclogo.png);
	height: 16px;
}

.livecoding
{
	content: url(../resources/livecodinglogo.png);
	height: 16px;
}

.realltv
{
	content: url(../resources/realltvlogo.png);
	height: 16px;
}

.sc2tv
{
	content: url(../resources/sc2tvlogo.png);
	height: 16px;
}

.streambox
{
	content: url(../resources/streamboxlogo.png);
	height: 16px;
}

.twitch
{
	content: url(../resources/twitchlogo.png);
	height: 16px;
}

.vidi
{
	content: url(../resources/vidilogo.png);
	height: 16px;
}

.youtube
{
	content: url(../resources/youtubelogo.png);
	height: 16px;
}
Ответить с цитированием
  #2 (permalink)  
Старый 24.05.2016, 11:13
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

benutzen,
Для того, чтобы была возможность отслеживать актуальность сообщений, в них должна иметься информация по дате-времени
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элемента массива без сдвига индексов preproger Общие вопросы Javascript 6 06.03.2015 17:50
Удаление элемента из HTML-списка Kostyk92 Элементы интерфейса 1 06.02.2012 23:00
удаление элемента dom Catherine Events/DOM/Window 0 28.10.2011 23:35
Массивы удаление элемента и вставка на его место другого mycoding Общие вопросы Javascript 1 19.04.2010 22:30
onClick эвент для всего документа, кроме отдельно взятого элемента DOM el_erizo Events/DOM/Window 5 19.03.2010 15:09