JavaScript客户端脚本语言

一、 发展史:

	* 1992年,nombas公司 C--,最早的客户端脚本语言。专门用于表单验证。 后更名为 scriptEarth
	* 网景	scriptlive,后来找到sun公司合作,共同开发出  JavaScript
	* 微软抄袭JavaScript 定义了 JScript
	* ECMA(欧洲计算机制造商协会)定义了一套客户端脚本语言的规范  ECMAScript规范
	
		JavaScript = ECMAScript规范 + js自己特有的东西(BOM/DOM)

二、 js与html结合方式

  • 内部js:
    * 定义

三、ECMAScript规范

		常量:
			* 基本数据类型:
				Java中:
					整型:byte short int long
					浮点型:float double
					布尔型:boolean
					字符型:char
				js原始数据类型:
					number:数字类型,包含整数和小数和 NaN(not a number)
					string: 字符串和字符类型	""  ''
					boolean: true 和 false
					null: 空类型。对象的占位符
					undefined:未定义,如果一个变量没有初始化值,默认为undefined
				
		变量:
			* 语法:
				* 使用 var定义变量  var i = "abc";
				* js是一门弱类型语言:定义变量时,不需要规定其数据类型。
				* typeof运算符:获取变量的数据类型
				* var关键字如果不书写,该变量则为全局变量
		
		语句:
			if
			switch
			while
			do...while
			for
			
		运算符:自动类型转换
			* 一元运算符
				++ --  +(正) -(负)
				* 注意:在js中,如果传递给运算符的值,和 运算符想要接受的 值 的类型不匹配,则会自动类型转换
		
				* 其他类型转为number
					string:将字符串的字面值,转为number,如果字面值不是数字,则 转为NaN
					boolean: true为1 false 为0
					
			* 比较运算符
				* > < >= <=: 
				* NaN参与的运算,结果都为fasle,除了(!=)
				* 字符串比较小大:如果长度一致按照字典顺序比较  长度不一致 那谁的长度长那就谁大
				* !=:
				* == ===(全等于):
					* 全等于比较时,先比较类型,如果类型不一致,直接返回false
			
			* 逻辑运算符
				&& || !
					* 其他类型转boolean
						* number:非0为true,0和NaN为false,
						* string: 除了空字符串(""),其他都是true
						* null 和 undefined:转为false
						* 对象:所有对象都为true
			
			* 算术运算符:
				+ - * / %
				注意:NaN 参与数学运算 结果都为NaN

			* 赋值运算符
				= += .... 
			* 三元运算符
				表达式 ? 值1 : 值2; 
	* 对象:
		* js是一门基于对象的语言
			* 基于对象:不能由原生的对象派生出新的对象。换句话说,不存在继承关系

		* Function(*****): 代表函数
				* 创建方式:
					* var fun = new Function("参数列表","方法体");
					* function 方法名称(形参列表){
							方法体
					  }
					* var fun = function(){
					
					  }
				
				* 属性:
					length:形参的个数
				
				* 使用:
					* 函数名称(实参列表);	
					* 特点:
						1.函数的调用,只与函数名称有关,与实参列表无关
						2.函数内部有内置对象 arguments 封装实参数组
				
				* void运算符:拦截返回值,一般结合a标签一起使用
					* 注销a标签跳转功能,保留可被点击的功能
						<a href="javascript:void(0);" onclick="exit();">退出</a>

设置字体阴影
text-shadow设置字体的阴影
规定水平阴影、垂直阴影、模糊距离,以及阴影的颜色:
text-shadow: 5px 5px 5px #FF0000;
字母大小写转换

text-transform:uppercase;

彩色图片变白

filter: grayscale(100%); 
filter: gray; 

放大缩小位移
Transform
transform:rotate(30deg);//旋转30度
transform:translate(50px,100px) 把元素从左侧移动 50 像素,从顶端移动 100 像素
transform:scale(2,4) 把宽度转换为原始尺寸的 2 倍,把高度转换为原始高度的 4 倍。
transform:skew(30deg,20deg) 围绕 X 轴把元素翻转 30 度,围绕 Y 轴翻转 20 度。
过度动画
transition

格式:transition: width 2s; (应用于宽度,时间2秒)
渐变动画:transition: transition-property transition-duration transition-timing-	function transition-delay;
transition-property:width;
transition-duration:5s;
transition-delay:2s;
transition-timing-function:
	linear	规定以相同速度开始至结束的过渡效果。
	ease	规定慢速开始,然后变快,然后慢速结束的过渡效果。
	ease-in	规定以慢速开始的过渡效果
	ease-out	规定以慢速结束的过渡效果。

自定义动画

Animation
格式:animation:myfirst 5s;(myfirst动画名,5s动画时间)
@keyframes myfirst 
{ 0% {background: red;} 
25% {background: yellow;} 
50% {background: blue;} 
100% {background: green;} }
@keyframes myfirst 
{ from {background: red;} 
to {background: yellow;}}

自定义动画详细属性
混合调用语法
animation: name duration timing-function delay iteration-count direction fill-mode play-state;

单个使用属性
animation-name 指定要绑定到选择器的关键帧的名称
animation-duration 动画指定需要多少秒或毫秒完成
animation-timing-function 设置动画将如何完成一个周期
animation-delay 设置动画在启动前的延迟间隔。
animation-iteration-count 定义动画的播放次数。 infinite无限次
animation-direction 指定是否应该轮流反向播放动画。
animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
animation-play-state 指定动画是否正在运行或已暂停。

四、 盒子模型

顺序排列,用于div设置显示方式为盒子模型给父布局设置,其子元素按父元素设置的效果排列:

//设置盒子模型
display: flex;
// 排列方式横向或竖向 后面加上wrap可自动控制宽高
flex-direction: row | row-reverse | column | column-reverse

justify-content:flex-start | flex-end | center;按方向居开始 中间  末尾	

flex-flow:和上面的属性值相同 加上warp可以换行或换列
例子:flex-flow:row wrap;  横向排列 如果排不下 自动换到下一行
           flex-flow:column wrap; 竖向排列 排不下 自动换列

flex-wrap:wrap;//自动换行 或换列


设置盒子模型display: flex;后给其子元素设置margin:auto;为自动居中
例子:margin:auto;  盒子的层上下左右都居中
          margin:10px auto; 盒子的层 距离顶部10px  左右居中


设置多个控件排列顺序:order:1;
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#box{
				height: 600px;
				width: 800px;
				border: 1px black solid;
				display: flex;/* 把外层转换为一个盒子 */
				flex-direction:row;/* 内层排列方向 */
				/* justify-content:center; */
				flex-wrap: wrap;
				
			}
			#box>div{
				/* margin: auto; */
				margin-top:20px ;
				margin-left: auto;
				margin-right: auto;
				height: 100px;
				width: 100px;
				border: 1px black solid;
			}
		</style>
	</head>
	<body>
		<div id="box">
			<div id="nei1">
				1
			</div>
			<div id="nei2">
				2
			</div>
			<div id="nei3">
				3
			</div>
			
			<div id="nei1">
				1
			</div>
			<div id="nei2">
				2
			</div>
			<div id="nei3">
				3
			</div>
		</div>
	</body>
</html>

五、 漂浮动画

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#wai {
				position: absolute;
				height: 250px;
				width: 130px;
				background-image: url(img/girl1.jpg);
				background-size: 100% 100%;
				animation-name: piaofu;
				animation-play-state: running;
				animation-iteration-count:infinite;
				animation-duration:5s ;
				animation-timing-function:linear;
			}
			#wai:hover{
				animation-play-state:paused;
			}

			#nei {
				height: 30px;
				background: rgb(0, 0, 0, 0.2);
				/* rgba a表示透明度*/
				/* opacity: 0.5;/* 调整背景透明度 0----1 */
			}
			#nei:hover{
				cursor: pointer;
			}

			@keyframes piaofu {
				10% {
					position: absolute;
					top: 50px;
					left: 0px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl1.jpg);
				}

				20% {
					position: absolute;
					top: 50px;
					left: 100px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl2.jpg);
				}

				30% {
					position: absolute;
					top: 350px;
					left: 100px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl3.jpg);
				}

				40% {
					position: absolute;
					top: 550px;
					left: 100px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl4.jpg);
				}

				50% {
					position: absolute;
					top: 100px;
					left: 400px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl5.jpg);
				}

				70% {
					position: absolute;
					top: 430px;
					left: 100px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl2.jpg);
				}

				80% {
					position: absolute;
					top: 600px;
					left: 800px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl1.jpg);
				}

				90% {
					position: absolute;
					top: 600px;
					left: 800px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl4.jpg);
				}

				100% {
					position: absolute;
					top: 600px;
					left: 800px;
					border: 1px black solid;
					width: 150px;
					height: 300px;
					/*transform: scale(0.3);*/
					background-size: 100% 100%;
					background-image: url(img/girl5.jpg);
				}
			}
		</style>

	</head>
	<body>
		<div id="wai">
			<div id="nei">
				<span style="color: red;" onclick="shutdownDIV()">关闭</span>
			</div>
		</div>
	</body>
	<script type="text/javascript">
		function shutdownDIV(){
			var wai=document.getElementById("wai");
			wai.style.display="none";
		}
	</script>
</html>

JS实现方式
JavaScript 实现是由以下 3 个不同部分组成的:

	  核心(ECMAScript) 
	  文档对象模型(DOM) 
	  浏览器对象模型(BOM) 

六、 JS的语句

		 if
		  for
		  while
		  do  while
		  switch
		  语法跟Java中一样		 
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//语句

			for (var i = 0; i < 10; i++) {
				//alert(i);
				document.write("<div  style='color:red;font-size: 30px;'>" + i + "</div>");
			}

			//计算 1---100的和
			var sum = 0;
			var num = 1;
			while (num <= 100) {
				sum += num;
				num++;
			}
			document.write(sum);

			/* switch (){
				case value:
					break;
				default:
					break;
			} */
		</script>
	</head>
	<body>

	</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值