JS实现简单聊天框

这篇博客展示了如何使用HTML、CSS和JavaScript实现手机界面的模拟,包括一个聊天窗口和头像切换功能。用户点击头像可以在两种图片之间切换,输入文字并发送后,消息会根据头像状态显示在不同的位置。此示例有助于理解前端交互的基本原理。
摘要由CSDN通过智能技术生成
<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#phone {
				width: 350px;
				height: 600px;
				margin: 0 auto;
				background: url(phone.jpg) no-repeat;
				background-size: 350px 600px;
				position: relative;
			}
			
			#interface {
				position: absolute;
				width: 290px;
				height: 390px;
				background-color: white;
				top: 85px;
				left: 30px;
			}
			
			#chat {
				position: absolute;
				height: 40px;
				width: 290px;
				bottom: 88px;
				left: 30px;
				background-color: #EBF8F6;
			}
			
			#portoait {
				position: absolute;
				width: 30px;
				height: 30px;
				border: 1px solid black;
				top: 5px;
			}
			
			#container {
				position: absolute;
				width: 180px;
				height: 25px;
				left: 35px;
				top: 5px;
			}
			
			#submit {
				position: absolute;
				height: 35px;
				width: 60px;
				right: 5px;
				top: 5px;
				border: 0;
				background-color: transparent;
			}
			.one{
				width: 100%;
				height: 20px;
				float: left;
			}
			.left{
				background-color: skyblue;
				padding: 5px;
			}
			.right{
				background-color: yellowgreen;
				padding: 5px;
			}
			.two img,
			.right{
				float: right;
			}
		</style>
	</head>

	<body>
		<div id="phone">
			<div id="interface">
				
			</div>
			<div id="chat">
				<img src="1.png" id="img" />
				<input type="text" id="container" />
				<button id="submit">发送</button>
			</div>
		</div>
		<script type="text/javascript">
			var phone = document.getElementById("phone")
			var interface = document.getElementById("interface")
			var img = document.getElementById("img")
			var container = document.getElementById("container")
			var submit = document.getElementById("submit")

			//头像变换
			var flag = true;
			img.onclick = function() {
				if(flag == true) {
					img.src = "2.png"
					flag = false;
				} else {
					img.src = "1.png"
					flag = true;

				}
			}
			submit.onclick = function() {
				if(flag == true) {
					interface.innerHTML += "<p class='one'><img src='1.png' />" + "<span class='left'>"+container.value+"</span>"+"</p>"
					
				} else {
					interface.innerHTML += "<p class='two'> <img src = '2.png'>" + "<span class ='right'>"+container.value+"</span>"+"</p>"
					
				}
				container.value=""
			}
		</script>
	</body>

</html>

效果:

 

思路:在布局好之后,首先对于头像切换问题使用 flag=true 判断点击事件,在点击事件结束后将false赋值给flag进行下一次判断,否则会进入死循环  也可以用数字判断,不过要处理好逻辑,不然接下来的内容不太好写。

对于输出内容,主要是用innerHTML拼接头像信息和具体内容输出内容用value获取。记得加标签,不然两个头像会在一列显示。标签尽量使用规范,代码中用了<p><img/></p>不建议使用。

对于点击事件,只是初次使用,在以后会逐渐完善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值