JAVAscript(jQuery)

76 阅读2分钟

JSON数据格式:Javascript Object Notation:js对象表示法

   作用:数据格式 - 文本数据
   比XML更简洁,更快,更容易解析
   1、认识【JSON字符串】:
1'[1,2,3,4,5]';
2'{"name":"代老湿"}';
   *3'[{},{},{},{}]';
4'{"names":[姓名1,姓名2,...],"age":[年龄1,年龄2,...]}'

   2、服务器端如何将数据变为JSON字符串:
PHP:echo JSON_encode($arr);
NodeJSON.stringify(arr);

   3、前端如何将JSON字符串拿到变为JSON对象:
1eval("("+json字符串+")");
2JSON.parse(json字符串);

1、jquery概念:

   jQuery是一个js类库,类库:其实就是一个js文件,别人提供的对象(属性和方法):压缩版(正式上线项目)和未压缩的源代码版
   目的:简化js - DOM、事件、ajax
   版本:
 1.11.3 - 2.xx版本以上就不再支持老IE,做了向上兼容,1.11.3版本也能使用到最新的特性
 2.xx
 3.xx

   常识题:jQuery有的人称呼叫做js库,而有的人称呼叫做js框架
那些称呼jQuery是一个库的人都是不够了解:jQuery由4个方面组成
	1、jquery.js - 库:简化了js,大部分人只知道这一部分
                2、jQuery.ui - 提供了页面的组件(组成页面一部分的部件) - 过时(效果有点老,以后也有更棒,网上一大把)
	3、jQuery.mobile - 移动端开发,不会学习,现在更流行uniapp
	4、Qunit - 测试人员(不需要会代码,英语好)用于测试javascript的工具

   曾经jQuery是全球最火的一个js库
   现在三大框架:vue、react、angluar
   目前市场上流传的库大概有8000+:
问题:没有办法全部学习:需要通过某个库,来学习库的特点(简化:越简单越轻松)

2、jQuery的使用步骤:

1、引入jQuery.js文件 2、使用jQuery的API去获取元素 3、使用jQuery的API去操作元素

3、jQuery如何获取元素:
   1、*工厂函数:因为这个工厂可以做很多操作
$(); 或者 jQuery();
作用:
  1、查找元素
	   语法:var 元素=$("jQuery选择器") - jQuery选择器是基于css选择器,但是比css选择器更加的强大

	   jQuery选择器不需要任何记忆:https://www.w3school.com.cn/jquery/jquery_ref_selectors.asp
	   返回值:使用jQuery的工厂函数找到的元素,是一个jQuery对象集合,意味着不能使用以前的DOM方法去操作

  	   1、jq找到的元素的特点:
	      1、隐式迭代 - 不用循环,直接做操作
	      2、具有链式操作 - 可以不断的使用.一步接一步的做下去
	      3、jq元素 和 dom元素 两者方法不换乱用,只能自己用自己的
		 转换:
		   jq -> dom:$("选择器")[i] - 只要加上下标就会变为DOM元素
				绝对不要这么用,不希望把简单的变得麻烦
				提出一点:千万不要对jq加下标,更不要循环

  2、将dom -> jq:$(dom元素) - 有用:e.srcElement得到的都是一个dom元素,要转为jQuery元素才能使用对应的方法

	为什么一个方法可以实现多个操作
	function $(){
		arguments - 重载:判断传入的实参的不同执行不同的操作
	}

   2、通过 节点之间的 关系:
1、父:$("xx").parent()
2、子:$("xx").children()
3、前一个兄弟:$("xx").prev();
4、后一个兄弟:$("xx").next();
5、*除了自己的其他兄弟:$("xx").siblings();

jQuery查找元素,返回值:jquery集合,可以直接做操作,切忌不要循环

1、事件:用户触发 或 浏览器自动触发:

   绑定:$("xx").bind("事件名",callback);
   简化:$("xx").事件名(callback);
1mousedown(鼠标按下)、mouseup(鼠标松开)

2、keydown、keypress、keyup - 键盘事件:
	$(window).键盘事件(callback);
	keydown:按下和按住都会触发,任何按键都支持 - 最适合用于做(游戏开发) 
	keypress:按下和按住都会触发,支持数字+字母+回车+空格
	keyup:松开时才触发,任何按键都支持 - 劲舞、炫舞、QQ音速,比手速

	event事件对象:jQuery没有任何的简化操作
		键盘键码:e.keyCode;

3、***scroll - 滚动监听事件:
	绑定事件:$(window).scroll(()=>{
			1、$(window).scrollTop();//获取当前滚动条距离页面顶部有多远

			2、$("xx").offset().top;//获取某个元素距离页面顶部有多远

			3、越往下滚,出现数据越多
		  })




2、JQ动画:

1、预定义动画:3组:9个 1、隐藏和显示: 隐藏:("xx").hide(执行时间,callback)显示:("xx").hide(执行时间,callback) 显示:("xx").show(执行时间,callback) 特殊:1、如果没有传递任何参数,瞬间的隐藏和显示 如果传递了时间参数,会具有动画(同时修改宽高度、透明度) 2、callback是动画执行完毕才会执行的代码操作 3、组合用法:自带判断操作: $("xx").toggle(执行时间,callback) === show+hide

2、滑动效果:
   隐藏:$("xx").slideUp(执行时间,callback)
   显示:$("xx").slideDown(执行时间,callback)
   特殊:1、哪怕不加时间也具有动画,只不过动画比较快(修改高度)
	 2、callback是动画执行完毕才会执行的代码操作
	 3、组合用法:自带判断操作:
		$("xx").slideToggle(执行时间,callback) === slideDown+slideUp

3、淡入淡出:
   淡出/隐藏:$("xx").fadeOut(执行时间,callback)
   淡入/显示:$("xx").fadeIn(执行时间,callback)
   特殊:1、哪怕不加时间也具有动画,只不过动画比较快(修改透明度)
	 2、callback是动画执行完毕才会执行的代码操作
	 3、组合用法:自带判断操作:
		$("xx").fadeToggle(执行时间,callback) === fadeIn+fadeOut

   2、自定义动画:
1、并发动画:所有的动画一起执行
	$("xx").animate({
		"css属性名":"css属性值",
		...
	},执行时间,callback)

2、排队动画:一个动画做完在做下一个
	$("xx").animate({
		"css属性名":"css属性值",
	},执行时间,callback).animate({
		"css属性名":"css属性值",
	},执行时间,callback).animate({
		"css属性名":"css属性值",
	},执行时间,callback).animate({
		"css属性名":"css属性值",
	},执行时间,callback).animate({
		"css属性名":"css属性值",
	},执行时间,callback).animate({
		"css属性名":"css属性值",
	},执行时间,callback)

特殊:
  1、animate方法不支持颜色、transform转换的动画 - 明天就有jQuery.ui.js提供增强animate方法
  2、动画会排队,如果快速的触发动画,怎么排队上很多很多的动画慢慢执行,不希望看到这个效果:
	stop();