javascript之聊天室(单机)来自于冷的锋刃

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JavaScript之聊天室设计模拟</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
            font-family: ‘微软雅黑‘
        }
        #container {
            width: 450px;
            height: 780px;
            background: #eee;
            margin: 80px auto 0;
            position: relative;
            box-shadow: 20px 20px 55px #777;
        }
        .header {
            background: #000;
            height: 34px;
            color: #fff;
            line-height: 34px;
            font-size: 20px;
            padding: 0 10px;
        }
        .footer {
            width: 430px;
            height: 50px;
            background: #666;
            position: absolute;
            bottom: 0;
            padding: 10px;
        }
        .footer input {
            width: 275px;
            height: 45px;
            outline: none;
            font-size: 20px;
            text-indent: 10px;
            position: absolute;
            border-radius: 6px;
            right: 80px;
        }
        .footer span {
            display: inline-block;
            width: 62px;
            height: 48px;
            background: #ccc;
            font-weight: 900;
            line-height: 45px;
            cursor: pointer;
            text-align: center;
            position: absolute;
            right: 10px;
            border-radius: 6px;
        }
        .footer span:hover {
            color: #fff;
            background: #999;
        }
        #icon {
            display: inline-block;
            background: red;
            width: 60px;
            height: 60px;
            border-radius: 30px;
            position: absolute;
            bottom: 6px;
            left: 14px;
            cursor: pointer;
            overflow: hidden;
        }
        img {
            width: 60px;
            height: 60px;
        }
        .content {
            font-size: 20px;
            width: 435px;
            height: 662px;
            overflow: auto;
            padding: 5px;
        }
        .content li {
            margin-top: 10px;
            padding-left: 10px;
            width: 412px;
            display: block;
            clear: both;
            overflow: hidden;
        }
        .content li img {
            float: left;
        }
        .content li span{
            background: #7cfc00;
            padding: 10px;
            border-radius: 10px;
            float: left;
            margin: 6px 10px 0 10px;
            max-width: 310px;
            border: 1px solid #ccc;
            box-shadow: 0 0 3px #ccc;
        }
        .content li img.imgleft {
            float: left;
        }
        .content li img.imgright {
            float: right;
        }
        .content li span.spanleft {
            float: left;
            background: #fff;
        }
        .content li span.spanright {
            float: right;
            background: #7cfc00;
        }
    </style>
    <script>
        window.onload = function(){
            var arrIcon = [‘http://tva1.sinaimg.cn/crop.0.0.540.540.180/006fKk88jw8f54ate3l02j30f00qodhh.jpg‘,‘http://tva1.sinaimg.cn/crop.0.0.540.540.180/006fKk88jw8f54ate3l02j30f00qodhh.jpg‘];
            //控制头像改变
            var num = 0;
            //用来累加改变左右浮动
            var iNow = -1;
            var icon = document.getElementById(‘icon‘).getElementsByTagName(‘img‘);
            var btn = document.getElementById(‘btn‘);
            var text = document.getElementById(‘text‘);
            var content = document.getElementsByTagName(‘ul‘)[0];
            var img = content.getElementsByTagName(‘img‘);
            var span = content.getElementsByTagName(‘span‘);

            icon[0].onclick = function(){
                if(num==0){
                    this.src = arrIcon[1];
                    num = 1;
                }else if(num==1){
                    this.src = arrIcon[0];
                    num = 0;
                }
            }
            btn.onclick = function(){
                if(text.value ==‘‘){
                    alert(‘发送内容不能为空‘);
                }else {
                    content.innerHTML += ‘<li><img src="‘+arrIcon[num]+‘"><span>‘+text.value+‘</span></li>‘;
                    iNow++;
                    if(num==0){
                        img[iNow].className += ‘imgright‘;
                        span[iNow].className += ‘spanright‘;
                    }else {
                        img[iNow].className += ‘imgleft‘;
                        span[iNow].className += ‘spanleft‘;
                    }
                    text.value = ‘‘;
                }
            }
        }
    </script>
</head>
<body>
    <div id="container">
        <div class="header">
            <span style="float: left;">冷的锋刃-博客园</span>
            <span style="float: right;"><div id="名称">
<script language=Javascript>
var now=new Date()
document.write(1900+now.getYear()+"-"+(now.getMonth()+1)+"-"+now.getDate()+" "+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds())
</script>
</div> </span>
        </div>
        <ul class="content"></ul>
        <div class="footer">
            <div id="icon">
                <img src="http://tva1.sinaimg.cn/crop.0.0.540.540.180/006fKk88jw8f54ate3l02j30f00qodhh.jpg" >
            </div>
            <input id="text" type="text" placeholder="说点什么吧...">
            <span id="btn">发送</span>
        </div>
    </div>
</body>
</html>


  

时间: 2024-11-05 04:32:47

javascript之聊天室(单机)来自于冷的锋刃的相关文章

Ajax PHP JavaScript MySQL实现简易的无刷新在线聊天室

思路 消息显示区 发消息 板块 消息显示 消息发送 优化 显示非重复性的数据 优化显示 加上滚动条 每次都显示最新消息 完整代码 前端代码 数据库表结构 服务器端代码 总结与展望 总结 展望 为更好的运用这两天学到的Ajax的相关的知识,就做了个简单的在线网络聊天室. 思路 实现聊天室,基本上就是通过Ajax来传递数据,让PHP来实现对数据的差入和查找,再交给前端JavaScript实现页面的更新,达到即时聊天的功能. 消息显示区 消息显示区就是一个DIV块,我们会借助Ajax获取到服务器端信息

在线聊天室的实现(4)--分布式聊天室的基础架构

前言: 前面都在讲述如何实现一个简单的聊天室, 并回顾了websocket的协议, 以及Netty 4.x的简单使用. 但如果仅局限于单机的聊天室实现, 那显然难登"大雅之堂". 借这个机会, 想尝试聊一下千万级聊天室的实现. 同时浅谈一下游戏中, 公共的聊天室资源服务定位. 本系列的文章链接如下: 1). websocket协议和javascript版的api 2). 基于Netty 4.x的Echo服务器实现  3). 简易聊天室的实现 架构演进: 这边讲述一下聊天室服务的思考过程

使用WebRTC搭建前端视频聊天室——数据通道篇

转自 使用WebRTC搭建前端视频聊天室——数据通道篇 在两个浏览器中,为聊天.游戏.或是文件传输等需求发送信息是十分复杂的.通常情况下,我们需要建立一台服务器来转发数据,当然规模比较大的情况下,会扩展成多个数据中心.这种情况下很容易出现很高的延迟,同时难以保证数据的私密性. 这些问题可以通过WebRTC提供的RTCDataChannel API来解决,他能直接在点对点之间传输数据.这篇文章将介绍如何创建并使用数据通道,并提供了一些网络上常见的用例 为了充分理解这篇文章,你可能需要去了解一些RT

Html Websocket搭建右下角聊天室

最近闲来无事,为我的网站增加了聊天室功能,这里主要用到了websocket技术,这时html5的一种新技术 controller部分 package main.java.web.news; import java.io.IOException; import java.util.concurrent.CopyOnWriteArraySet; import javax.websocket.*; import javax.websocket.server.ServerEndpoint; /** *

Socket.IO聊天室

小编心语:大家过完圣诞准备迎元旦吧~小编在这里预祝大家元旦快乐!!这一次要分享的东西小编也不是很懂啊,总之小编把它拿出来是觉地比较稀奇,而且程序也没有那么难,是一个比较简单的程序,大家可以多多试试~ Socket.IO聊天室 简介:Socket.IO实现了实时双向的基于事件的通讯机制.旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制.下面我们使用Node.js和Socket.IO来做一个简单的聊天室.一.初始化项目 (这个是在实验楼网站的虚拟平台需要实现的~可自动略过这一环节,

构建有多个房间的聊天室程序

1. 程序概览 用户可以在一个简单的表单中输入消息,相互聊天.消息输入后会发送给同一个聊天室内的其他所有用户. 进入聊天室后,程序会自动给用户分配一个昵称,但他们可以用聊天命令修改自己的昵称,如图2-2所示.聊天命令以斜杠(/)开头. 同样,用户也可以输入命令创建新的聊天室(或加入已有的聊天室) ,如图2-3所示.在加入或创建聊天室时,新聊天室的名称会出现在聊天程序顶端的水平条上,也会出现在聊天消息区域右侧的可用房间列表中. 在用户换到新房间后,系统会确认这一变化,如图2-4所示. 2. 程序需

使用WebRTC搭建前端视频聊天室——信令篇

博客原文地址 建议看这篇之前先看一下使用WebRTC搭建前端视频聊天室——入门篇 如果需要搭建实例的话可以参照SkyRTC-demo:github地址 其中使用了两个库:SkyRTC(github地址)和SkyRTC-client(github地址) 这两个库和demo都是我写的,如果有bug或是错误欢迎指出,我会尽力更正 前面的话 这篇文章讲述了WebRTC中所涉及的信令交换以及聊天室中的信令交换,主要内容来自WebRTC in the real world: STUN, TURN and s

用HTML5 Web Storage作一个简易聊天室

前 言: 2个月前为了一个评论让我潜水(潜伏)博客园2年作了一次艰难的决定.注册了一个账号! 没事瞎逛博客园以及其他技术网站,发现一个不错的留言墙.就看了其中使用的技术.呀!惊呆了.居然是HTML5,完全没接触过呀! 再 言: 所以就搜了博客园相关文档,有如下信息: @#$^%&*( $&^^**(&( http://zzk.cnblogs.com/s?t=b&w=html5%20Storage #$%&^&*( %*(&()*%$ 资料太多了,你也

类Flask实现前后端交互之代码聊天室

前言 框架 项目目录及各自功能 流程图 后端 server backend exector 前端 ajax 页面更新 演示 简易应答模式 代理模式处理外部请求 后台日志 总结 前言 这两天老是做梦,全根Python有关,这不昨晚梦见我把Python做成了类似于JavaScript一样的功能,在前端混的风生水起.结果是个梦...... 在第一次接触了Flask之后,就被它优雅的路由映射给俘获了.后来我自己又搜索了相关的知识点,算是勉强做出一个最最简化的版本.详细的内容可以查看我的这篇文章. htt