【css3+JavaScript】:左右对话式留言栏

实现效果:

演示地址:http://codepen.io/anon/pen/NqxjEy

CORE CODE:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>Talk Room</title>
	<style type="text/css">

	*{
		margin: 0;
		padding: 0;
	}

	li{
		list-style: none;
	}

    body{
    	font-family: "microsoft yahei";
    	background-color: #f7f7f7;
    	color: #666;
    	font-size: 13px;
        line-height: 1.8em;
    }

    .roomArea{
    	width: 400px;
        height: 500px;
        background-color: #fff;
        border-radius: 3px;
        box-shadow: 0 1px 2px rgba(0,0,0,.3);
        position: absolute;
        top:0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
    }

    .room-content{
    	width: 100%;
    	padding: 10px;
    	height: 320px;
    	overflow-y:auto;
    	border-bottom: 1px solid #f7f7f7;
    }

    .opArea{
    	width: 100%;
    }

    .wordsInput{
    	width: 380px;
    	padding: 10px;
    	height: 80px;
    	margin-bottom: 20px;
    	border: 0;
    	outline: 0;
    	border-bottom: 1px solid #f7f7f7;
    	font-family: "microsoft yahei";
    }

    .btn{
        float: right;
        margin:0 6px;
    	padding: 5px 20px;
    	border: 0;
    	outline: 0;
    	border-radius: 3px;
        background-color: #eb4f38;
        color: #fff;
        border: 1px solid transparent;
    }

    #offBtn{
    	background-color: #a9b7b7;
    }

    .inp{
    	width: 125px;
        outline: 0;
    	height: 25px;
        border: 0;
        border-bottom: 1px solid #f7f7f7;
    }

    label{
    	margin-left: 10px;
    }

    .msg-list{
    	position: relative;
    }

    .msg-list li{
      display:inline-block;
      padding: 6px 0;
      margin: 6px 0;
    }

    .words {
    	position: relative;
    	display: inline-block;
    	margin-left: 50px;
		background-color: #00bb9c;
		color: #fff;
		padding: 5px 8px;
		border-radius: 4px;
		width: 240px;
		min-height: 40px;
    }

    .words:before{
    	content: ‘‘;
    	position: absolute;
    	top:7px;
    	left:-6px;
    	border-style: solid;
    	border-width: 6px 12px 6px 0;
    	border-color: transparent #00bb9c transparent transparent;
    }

    .nickName {
    	position: absolute;
		width: 40px;
		height: 40px;
		border-radius: 20px;
		background-color: #00bb9c;
		display: inline-block;
		line-height: 40px;
		text-align: center;
		color: #fff;
        -webkit-box-shadow: 0 0 1px rgba(0,0,0,.3);
        box-shadow: 0 0 1px rgba(0,0,0,.3);
}

.time {
  float: right;
  font-size: 12px;
  color: #eee;
}

.oRight .nickName {
  right: 43px;
  background-color: #56abe4;
}

.oRight .words{
    background-color: #56abe4;
}

.oRight .words:before{
    display: none;
}

.oRight .words:after{
    content: ‘‘;
        position: absolute;
        top:7px;
        right:-6px;
        border-style: solid;
        border-width: 6px 0 6px 12px ;
        border-color: transparent transparent transparent #56abe4 ; 

}

	</style>

</head>
<body>

<div class="roomArea">

	<div class="room-content" >
		<ul class="msg-list" id="msgList">
		</ul>
	</div>

	<div class="opArea">

    <textarea class="wordsInput" id="txtInput" placeholder="说点什么吧"></textarea>
    <label for="inp">输入昵称:</label>
    <input type="text" class="inp" id="inp">
    <button class="btn" id="offBtn">取消</button>
    <button class="btn" id="sendBtn">发布</button>

	</div>

</div>

<!--js部分-->

<script type="text/javascript">

var oMsgList=document.getElementById(‘msgList‘);
var oTxtInput=document.getElementById(‘txtInput‘);
var oInp=document.getElementById(‘inp‘);
var oOffBtn=document.getElementById(‘offBtn‘);
var oSendBtn=document.getElementById(‘sendBtn‘);

oSendBtn.onclick=function addWords(){

if (oTxtInput.value==‘‘) {
    alert(‘输入内容不能为空‘);
    oTxtInput.focus();
    return false;
}

else if (oInp.value==‘‘) {
	alert(‘昵称不能为空‘);
    oInp.focus();
    return false;
}

else{

oMsgList.innerHTML+="<li>"+"<span class=‘nickName‘>"+oInp.value +"</span>" + "<span class=‘words‘>"+oTxtInput.value+"<span class=‘time‘>"+getTime()+"</span>"+"</span>" +"</li>";

oInp.value=‘‘;
oTxtInput.value=‘‘;

//遍历li
var i="";

var d=document.getElementsByTagName(‘li‘);
//获取tag名为li的html元素

for(i=0;i<d.length;i++){//遍历tag

if (i%2 != 0) {
    //偶数添加类"oRight"
 d[i].className="oRight";
};

}

}

}

function getTime(){
    var date = new Date();
    var year = date.getFullYear();
    var month = date.getMonth()+1;
    var day = date.getDate();
    var hours = date.getHours();
    var minutes = date.getMinutes();
    var seconds = date.getSeconds();
    var time = year+‘/‘+month+‘/‘+day+‘ ‘+hours+‘:‘+minutes+‘:‘+seconds;
    return time;
}

</script>

</body>
</html>

  

时间: 2024-12-05 13:04:59

【css3+JavaScript】:左右对话式留言栏的相关文章

纯css3开发的响应式设计动画菜单(支持ie8)

这是一个响应式设计的菜单.单击列表图标,当你显示屏大小可以完全水平放下所有菜单项时,菜单水平显示(如图1).当你的显示屏不能水平放置所有菜单项时,菜单垂直显示(如图2). 而且显示的时候是以动画的型式显示.效果相当的好. 点击这里在线预览 下面贴出实现这功能的源代码,这是一个纯用css3实现的菜单 html代码: <div class="container"> <!--[if lte IE 8]> <style> .iconicmenu > l

HTMl5/CSS3/Javascript 学习推荐资源

HTMl5/CSS3/Javascript 学习推荐资源 前端的定义应该是数据内容的展示,在国内大家都觉得前端只是HTML+CSS+Javascript,但是实际上与展示有关的都是前端,所以Ruby/Python/Nodejs/Java/ASP .NET只要和展示有关的部分都可以称之为前端.在这里由于篇幅的限制,我们只推荐与HTML+CSS+Javascript三者有关的前端技术 入门 w3school html5 简单HTML5的入门教程 w3school css3 简单的CSS3入门教程 J

JavaScript的隐式转换

原文:JavaScript的隐式转换 JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object.object是引用类型,其它的五种是基本类型或者是原始类型.我们可以用typeof方法打印来某个是属于哪个类型的.不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换.隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等.. typeof '11' //string typeof(11) //number '1

PHP CSS3 目录直读式Lightbox 画廊图片展示

PHP CSS3 目录直读式Lightbox 画廊,非常适合用在PHP中建立在线图库.相册中,用于照片的浏览和展示.拖动图片可移动到任意位置,单击放大,可上一张.下一张播放!采用目录直读的方式,无需太多的设置,即可读取指定目录下的图片,而无需手动添加图片的路径和文件名.内核采用fancybox图上浏览插件,简洁漂亮,配合CSS3实现完美的浏览体验. 安装说明:本源码无数据库,因此无需安装,要注意demo.php中的相关变量,主要的地方已给出注释,根据注释可以快速部署到你的PHP开发项目中. 测试

JavaScript弹出式日历控件 无jquery

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" cont

JavaScript复习之--javascript数据类型隐式转换

JavaScript数据类型隐式转换.一,函数类    isNaN()    该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true.    alert()    输出的内容隐式的转换为字符串. 二,运算符类.    1,算术运算符.       - * / %    如果操作数不是数值,将会隐式的调用Number()函数.按照这个函数的转换规则进行转换.    如果转换不成功,整个表达式返回NaN.       +     如果操作数都是数值,然后进行相加.    任何数据

css3+javascript实现翻页幻灯片

css3+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

超棒的HTML5/CSS3单页面响应式模板(支持Bootstrap)

在线演示 使用Bootstrap实现的响应式单页面模板. 桌面效果: 移动设备效果: 阅读全文:超棒的HTML5/CSS3单页面响应式模板(支持Bootstrap) 超棒的HTML5/CSS3单页面响应式模板(支持Bootstrap)

一款纯css3实现的响应式导航

之前为大家介绍了好几款响应式导航.今天再给大家带来一款纯css3实现的响应式导航.这款导航还有个响应式的搜索框.废话少说,直接上图: 在线预览   源码下载 实现的代码. html代码: <div class="navbar"> <a class="brand" href="#"> <img src="logo.png" /></a> <!--MOBILE--> &l