js - 运用内嵌来实现动态布局

       js魅力所在应该就是它的灵活性很强,比如说当用了   元素.innerHTML=(所要内嵌的结构),加上事件和函数以后神奇的事就要发生了,原来的结构发生了变化,元素里又内嵌了一个结构。

       说到内嵌呢,就不得不提一下字符串了。在拼接字符串的时候拼接字符串不管是单引号还是双时引号在拼接的时候都会默认离自己最近的另一半是一对的,导致没用好的话就把变量解析成字符串了。解决方法嘛~最靠谱的就是按老师说的,把填的结构先写上,要从哪里加东西就在那里用两个加号“劈开”然后再加内容 。

依靠这个我们做了简易的聊天框,不过还不能进行线上聊天,只能  “  自嗨 ” 一下,如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<style>
		/*清除默认样式*/
		body{
			margin:0;
			background-color: mediumpurple;
		}
		dl,dd{
			margin:0;
		}
		img{
			border:none;
		}
		/* 设置样式*/
		#box{
			position:relative;
			width:320px;
			height:563px;
			padding:50px 15px 70px;
			background: url(../img/bg.png) no-repeat;
			margin:0 auto;/*为了看着方便将其显示在屏幕中央*/
		}
		#bot{
			position:absolute;
			left:17px;
			bottom:74px;
			width:318px;
			height:40px;
			padding:10px 0;
			background: rgba(0,0,0,.5);
		}
		#list{
			padding-top:10px;
		}
		#list dl{
			width:280px;
			padding:10px 20px;
		}
		dl:after{
			display: block;
			content: "";
			clear:both;
		}
		dd{
			width:40px;
		}
		dt{
			width:200px;
		}
		#list dt span{
			font-size: 16px;
			padding:5px 15px;
			line-height: 30px;
			background: #c35070;
			color:#fff;
			border-radius: 3px;
			word-wrap:break-all;
		}
		#pic{
			background: transparent;
			border:none;
		}
		#inp{
			vertical-align: top;
			padding:0 15px;
			border:none;
			background-color: #fff;
			border-radius: 3px;
			width:160px;
			height:40px;
			font-size: 14px;
			line-height: 40px;
		}
		#send{
			vertical-align: top;
			color:#e15671;
			font-size: 14px;
			background: transparent;
			border:none;
			line-height: 40px;
		}
	</style>
	<body>
		<!--布局-->
		<div id="box">
			<div id="list">
				<!--<dl>
					<dd>
						<img src=""  />
					</dd>
					<dt>
						<span></span>
					</dt>
				</li>-->
			</div>
			<div id="bot">
				<button id="pic">
					<img src="../img/1.png"  id="img"/>
				</button>
				<input type="text" id="inp" value=""/>
				<button id="send">发送</button>
			</div>
		</div>
		<!--用js将input里输入的内容在dl里显示-->
		<script >
			//声明变量
			var list = document.getElementById(‘list‘);
			var inp = document.getElementById(‘inp‘);
			var send = document.getElementById(‘send‘);
			var img = document.getElementById(‘img‘);
			var pic = 1//给图片做标记

			//点击发送时,将输入框中的内容展示在dl中
			send.onclick = function(){
				//判断图片序号从而决定是左浮动还是右浮动
				if(pic == 1){
					list.innerHTML = list.innerHTML+‘<dl>‘+"<dd style=‘float:left‘>"+"<img src=‘../img/1.png‘>"+‘</dd>‘+"<dt style=‘float:left‘>"+"<span style=‘float:left‘>"+inp.value+‘</dt>‘+‘</span>‘+‘</dl>‘;
				}else if ( pic == 2){
					list.innerHTML = list.innerHTML+‘<dl>‘+"<dd style=‘float:right‘>"+"<img src=‘../img/2.png‘>"+‘</dd>‘+"<dt style=‘float:right‘>"+"<span style=‘float:right‘>"+inp.value+‘</dt>‘+‘</span>‘+‘</dl>‘;
				}
				//发送成功后把输入框内容清空
				inp.value = "";
			}
			//通过判断图片序号判断该切换哪张图片
			img.onclick = function () {
				if (pic == 1){
					img.src=‘../img/2.png‘;
					pic = 2
				}else if (pic == 2){
					img.src=‘../img/1.png‘;
					pic = 1
				}
			}
		</script>
	</body>
</html>

     不过我写的过于繁琐,还有更简单的,还没整理出来,以后再补充   *?????(??ω?)????   。

   

    

原文地址:https://www.cnblogs.com/zyuu/p/8205318.html

时间: 2024-10-31 06:12:53

js - 运用内嵌来实现动态布局的相关文章

JS中内嵌函数中this关键字的使用

this关键字的使用 在嵌套函数中:和变量不同,this关键字没有作用域的限制,在嵌套函数的内部使用this关键字可以分为以下两种情况: 1)如果嵌套函数作为方法调用,那么this为当前的上下文. 2)如果当做函数调用,那么this的值依赖于当前使用的是否为严格模式,在非严格模式下,this为全局上下文,否则为undefined. 例如: var test1={ a:1, b:2, fun1:function(){ console.log(“fun1: “ +this);    //this为t

js函数内嵌函数的整体跳出 .

stop=false; $.ajax({success:function(){ 这里面不能用return false跳出整个<script></script>,只能跳出该处的function, 注意;可以使用stop=true }}); 另起一行使用if (stop) return false:

神奇的jQuery插件:动态布局响应式插件-Freetile.js

今天我们这里再介绍一款相当不错的响应式布局插件 - Freetile.js,使用它同样可以生成超酷的动态布局效果.相信大家一定会喜欢! 主要特性 Freetie来自于Assemblage和 Assemblage Plus的内建布局引擎,设计灵感来自于Masonry,VGrid和Wookmark,但是和他们相比较,拥有以下独特的地方: 允许包含任何尺寸的元素,并且不要求一个固定的列宽度,因此你不需要指定列宽度来迎合你的元素大小 内建算法允许你很容易的自定义插入的位置,满足不同喜好的展示方式.例如,

原生js实现tab选项卡里内嵌图片滚动特效代码

<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8"><title>原生js实现tab选项卡里内嵌图片滚动特效代码</title><meta name="keywords" content="原生js实现tab选项卡里内嵌图片滚动特效代码" /><meta name=&

【转】WebResource实现在自定义控件中内嵌JS文件

在类库中的资源  其他项目中要使用 需要嵌入才行 参考文献:WebResource实现在自定义控件中内嵌JS文件 1. WebResource简介 ASP.NET(1.0/1.1)给我们提供了一个开发WebControl的编程模型,于是我们摆脱了asp里面的include模式的复用方式.不过1.0/1.1提供的Web控件开发模型对于处理没有image.css等外部资源的组件还算比较得心应手,script虽然很多时候也是外部资源,但在开发控件的时候我们习惯把script使用Page.Registe

selenium3 + python - js 内嵌滚动处理

一.js内嵌html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"><!-- for HTML5 --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>内嵌div&

js把css样式转成内嵌

通过邮件内容是要内嵌样式的 //根据容器ID来渲染行内样式,避免长时间卡顿 let translateStyle = contentId => { const sheets = document.styleSheets; const sheetsArry = Array.from(sheets); const $content = $('#' + contentId); sheetsArry.forEach(sheetContent => { const { rules, cssRules }

一、小程序内嵌Html示例

小程序内嵌Html 1.下载wxParse:https://github.com/icindy/wxParse 2.下载完成后将插件目录下的wxParse文件夹拷贝到项目目录下 (文件夹明细) 3.全局配置文件app.wxss中导入wxParse的样式表 @import "/wxParse/wxParse.wxss"; (以上只是仅在app.wxss引入配置,其他页面布局未动) 4.下面是在我们自己需要写的页面操作 在需要加载html代码的页面js文件中引用wxParse.js文件并通

GCC内嵌AT&amp;T汇编语法

一 基本语法 1 寄存器引用 引用寄存器要在寄存器号前加百分号%,如"movl %eax, %ebx". 80386有如下寄存器: 1.8个32-bit寄存器 %eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp: 2.8个16-bit寄存器,它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp: 3.8个8-bit寄存器:%ah,%al,%bh,%bl,%ch,%cl,%dh,%dl.它们事实上是寄