Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Удаление элемента документа по таймеру (https://javascript.ru/forum/dom-window/63204-udalenie-ehlementa-dokumenta-po-tajjmeru.html)

benutzen 23.05.2016 20:02

Удаление элемента документа по таймеру
 
Здравсвуйте , есть программа для стрима , называется 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;
}


Dilettante_Pro 24.05.2016 11:13

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


Часовой пояс GMT +3, время: 12:15.