jQuery

jQuery(12-30_ to_ 01-04)

What's the jQuery?(12-30)

主要分为两个大版本
	1.x			-- 			还支持ie6/ie7/ie8
	2.x			--			已经不支持低版本浏览器了

一般分为两种类型
	生产版本 	--在开发阶段使用的,没有经过压缩,除了问题好调试;
		jquery-2.2.2.js

	发布版本	--网站发布之后使用的版本,经过压缩,可以优化网络传输;
		jquery-2.2.2.min.js

How to use jQuery?

步骤:
	1、引入jQuery的文件;
	2、写入口函数;
	3、写自己具体的逻辑实现;
	
	<script src="js/jquery-1.12.2.js"></script>
	<script>

	//入口函数的第一种写法
		$(document).ready(function () {
			
    	});

    //入口函数的第二种写法
        $(function () {

        });			

	</script>

tips:script如果写在了body之上head之内,那么要让script自动执行,要加入 onload = function (){};
	script写在body标签的末尾则没有这个问题;

jQuery选择器

$(tagName);			获得的是一个伪数组;
$("#id");			获得的是一个伪数组,但里面只有一个元素;
$(".className");	获得的是一个伪数组;

jQuery操作样式

box.css(key,value);
	eg:
		$("#box").css("width",600);
		$("#box").css({"width":600,"height":300,"font-size":"20px"});

	tips:该操作有返回值,返回值为该对象;

jQuery操作class

addClass
removeClass
toggleClass
	eg:
		$("div").addClass("box box1");
		$("div").removeClass("box box1");
		$("div").toggleClass("box box1");
	
	tips:toggleClass(),如果该class值不存在则加入,存在则删除;
		添加删除操作都支持传入多个className;

jQuery节点操作(12-30)

(1)、创建节点
	$("<标签名>"),创建标签,返回一个标签对象;
	eg:
		var p1 = $("<p>");
		var p1 = $("<p></p>");

(2)、插入节点
	$(parent).append(div);
	div.appendTo($(parent));	将标签对象加入到父元素中,作为最后一个子元素;(用的有点少)

	$(parent).prepend(div);		将标签对象加入父元素作为第一个子元素;
	
	$(selector).after(node);	将一个子元素(node)添加到另一个子元素(selector)后面;

	$(selector).before(node);	将node插入到selector之前;

(3)、删除节点
	$(selector).remove();		将selector及其子元素全部删除;

(4)、清空子节点
	$(selector).empty();		将selector的子元素全部删除,自身不删除;

(5)、克隆节点
	$(selector).clone(true of false);	
			true		复制已经绑定的事件处理程序;
			false		不复制已经绑定的事件处理程序;
		tips:返回克隆的对象;

	tips:
		var index = $(this).index;		可以直接获取该对象在父元素中的索引;
		$(parent).eq(index);	获取parent里面的索引为index的子元素,返回一个JQ对象;
		
		jQuery对象是指可以调用jQuery方法的对象;
		DOM对象指原生js获取到的对象,仅可调用js提供的DOM方法;
		
		通过jQuery获取的对象都为jQuery对象,
			this是DOM对象,因此不能直接在jQuery中使用,
			jQuery用	 $(this) 来指代当前对象;

	tips:$(this).children(1);	其中的1指的是索引;
		$(this).children().eq(1);

动画

(1)、隐藏和显示动画
	$(selector).hide(speed,callback);
	$(selector).show(speed,callback);

		eg:
			$("#hide").click(function () {
                $("#box").hide(2000,function(){
                    console.log("hideFunction");
                });
            });

			$("#show").click(function () {
                $("#box").show(2000,function () {
                    console.log("showFunction");
                });
            });
(2)、淡入或淡出
		
      $("#box").fadeOut(2000,function () {
          console.log("淡入,第一个是速度");
      });
 
        
      $("#box").fadeIn(2000,function () {
          console.log("淡出");
      });

	  $("#box").fadeToggle(2000,function () {
          console.log("淡入或淡出");
      }) 

      $("#box").fadeTo(2000,0.5,function () {
          console.log("淡入或淡出,第一个是speed,第二个是透明度");
      });

(3)、滑动
	向下滑动:$(selector).slideDown(speed,callback);
	向上滑动:$(selector).slideUp(speed,callback);

	向上或者向下滑动:$(selector).slideToggle(speed,callback);

(4)、多属性动画

	作用:控制多个属性同时改变的动画
	语法:
		$(selector).animate({params},speed,callback);
	参数:
		params			动画属性键值对
		speed			动画运行所需的毫秒数
		callback			动画完成时的回调函数

	eg:
		$("#hide").click(function () {
            $("#box").animate({
				"width":600,
				"height":100,
				"opacity":0.3
		},3000,function () {
                console.log("我会七十二变");
            })
        });

(5)、停止动画:
	$(selector).stop(stopAll,goToEnd);
	作用:将jQuery的动画停止;
	参数:
		stopAll
			true		清除所有的动画效果;
			false		仅停止当前活动的动画,动画序列中下一个的动画继续执行;
		goToEnd
			true			停止之后立刻到达结束的效果,并执行callback;
			false			停止之后不会立刻到达结束效果;

注册事件(12-31)

(1)、eg:
	$(select).hover(function_1,function_2);
			tips:前一个函数为移入时候触发的函数,
				后一个函数为移出时候触发的函数;

(2)、on的方式注册事件
	$(selector).on(event,childSelector,data,callback);
		参数:
			event			事件类型					必须
			childSelector	指定注册事件的子元素		可选
			data			传入callback的额外参数	可选
			callback		绑定的事件处理程序		可选

	eg:
		$("#father").on("click","#son",{msg:456},function(event){
			console.log("123");
			console.log(event.data.msg);
		});

		tips:{msg:456}为传入回调函数的额外参数,必须为对象字面量;
			在回调函数内部,传入的参数用event.data.msg调用;
		
(3)、bind
	$(selector).bind(event,data,callback);

	tips:与on没有什么区别,推荐用on;

(4)、delegate

$(parentSelector).delegate(childSelector,event,data,callback);
		参数:
			childSelector		子元素选择器
			event			事件类型
			data				额外参数
			callback			绑定的处理程序

	tips:委托方式注册事件,这种方式由父元素调用,给子元素添加事件;
		parentSelector即为父元素,childSelector为子元素,其他参数与on类似;
		仍然推荐用on的方式,简单直接;

eg:
	click可以用这种方式直接注册事件
		$(tabItem).click(function(){
			
		});

tips:其他事件,
	mouseenter,鼠标移入,移入瞬间触发;
	mouseover,鼠标悬停,会不断触发;

解绑事件

(1)、off
	$(selector).off(event,childSelector,callback);
		参数:
			event			事件类型;
			selector		指定的子元素;
			callback		解绑的处理程序;

(2)、unbind
	$(selector).unbind(event,callback);
		参数:
			event		事件类型
			callback	要解绑的处理程序

(3)、undelegate
	$(selector).undelegate(selector,event,callback);
		参数:
			selector		指定的子元素;
			event			事件类型;
			callback		解绑的处理程序;

		tips:解绑事件不需要对事件进行一一对应,方式通用;
			undelegate没有event则无法使用;
			off方法如果不传参将会删除所有注册过·的事件;
			推荐使用off方法解绑事件;

设置DOM元素属性

(1)、attr
	$(selector).attr(attribute,value);
		参数:
			attitute		属性;
			value			值;
		tips:如果只有一个参数是获取,有两个参数就是设置;

(2)、prop
	$(selector).prop(attribute,value);
		参数:
			attitute		属性;
			value			值;
		tips:如果只有一个参数是获取,有两个参数就是设置;

		tips:prop只支持标准属性,自定义属性不支持获取和设置;
			attr支持自定义属性;

(3)、val();
	获取表单属性的值;
	$(selector).val(value);
		参数:
			value		用于设置的值;
		说明:不传参数就是获取,传了参数就是设置;

获取和设置标签中的内容

(1)、text
		$(selector).text(content);
		参数:
			content			用于设置内容(文本的形式);

(2)、html
		$(selector).html(content);
		参数:
			content			用于设置内容(可以是标签);

	tips:不传参数为获取,传了参数为设置;
		分别是设置内部文本和内部的html标签;

	链式编程:
		$("#navBar").css("position","fixed").css("width","100%");

宽高设置、位置操作

(1)、宽高
	$(selector).width(number);
	$(selector).height(number);

		tips:国际惯例,不传参为获取,传参为设置;

(2)、位置操作
		获取或者设置某个元素的偏移量
			$(selector).offset({top:value,left:value});
			eg:
				$("#box").offset();
				tips:如果括号内不传参,则获取一个包含了top和left的对象;

		获取某个元素的位置
			$(selector).position();
				tips:获取的是定位下的top和left的值,以数组对象的形式存储;
					只可获取,不可存储;
					要设置其定位值,用css或offset;

(3)、操作滚动
		为指定元素绑定滚动事件的处理程序;
			$(selector).scroll();

			scrollTop();
			scrollLeft();

jQuery选择器

(1)、基本选择器
	标签选择器
		$(标签名)
			作用:选择所有同名标签;
			返回值:包含所有满足条件的DOM对象的jQuery对象,是一个类数组对象;
	
	class选择器
		$(.+class)
			作用:选择指定class的页面上的标签;
			返回值:所有满足条件的DOM对象集合——jQuery对象,一个类数组对象
	id选择器;
		$(#+id)
			作用:选择指定id的目标元素,只能获取到第一个id满足条件的元素;
			返回值:包含有一个DOM对象的jQuery对象,也是一个类数组对象;
	
	并集选择器
		$(selector1,selector2,...);
			作用:获取满足任意一个选择器的标签组成一个集合;
			返回值:包含满足任意条件的DOM对象的集合、jQuery对象、类数组对象;
			eg:
				$("span,div,p")
							

	交集选择器
		$(selector1selector2....)
			作用:选取满足所有选择器的标签元素;
			返回值:包含满足所有条件的DOM对象,得到的是jQuery对象、类数组对象;
			eg:
				$(".box.box1.box2")	
				
	
		tips:跟css中的选择器是一样的,只不过作为字符串传入了jQuery的选择器中;

(2)、层级选择器
	后代选择器
		$(selector1  selector2 ...)
			作用:选择类似css中后代选择器中选择的目标元素;
			返回值:满足条件的最后代子元素的DOM对象集合,是jQuery对象;
			eg:
				$(".box a");
	
	子代选择器
		$(selector>selector)
			作用:选取类似css中子的满足条件的代元素;
			返回值:满足条件的所有DOM对象集合,是一个jQuery对象;
			eg:
				$("li>.box")

	相邻选择器
		$(selector1+selector2)
			作用:选取selector1的下一个兄弟元素,同时要满足selector2的条件;
			返回值:jQuerr对象;
			eg:
				$(".li_1+.li_2")

	兄弟选择器
		$(selector1~selector2)
			作用:选取selector1后面的所有兄弟元素,并且要求满足selector2;
			返回值:jQuery对象;
			eg:
				$(".li_1~.li_4")

(3)、过滤(筛选)选择器
	$(selector:even)
		作用:选择满足selector的index为偶数的元素;
		eg:
			$("li:even")
	
	$(selector:odd)
		作用:选择满足selector的index为奇数的元素;
		eg:
			$("li:odd")

(4)、查找元素的方法
	parent方法
		$(selector).parent()
			作用:获取满足选择器的元素的父节点;
			返回值:jQuery对象;
	
	find方法
		$(selector).find(selctor2);
			作用:在满足selector1的元素的后代元素中查找满足selector2的后代元素;
			返回值:jQuery对象

		tips:find方法的效率是不高,所以少用,推荐children
	
	children方法
		$(selector1).children(selector2)
			作用:在满足selector1的子代元素中查找满足selector2的子代元素;
			返回值:jQuery对象;
			eg:
				$("#ul").children(".li_3")
	
	siblings方法
		$(selector1).siblings(selector2)
			作用:获取满足selector1的兄弟元素中满足selector2的兄弟元素
			返回值:jQuery对象

	next方法
		$(selector).next();
			作用:获取满足选择器元素的下一个元素节点;
			返回值:jQuery对象;
			eg:
				if($("?").next().length == 0);
					判断该元素是否为最后一个;

	nextAll方法
		$(selector1).nextAll(selector2)
			作用:获取满足选择器1的元素之后的所有满足选择器2的元素;
			返回值:jQuery对象;

	prev方法
		$(selector).prev()
			作用:获取当前元素的上一个元素;
			返回值:jQuery对象;

	prevAll方法
		$(selector1).prevAll(selector2);
			作用:获取当前元素中之前的兄弟元素,同时满足selector2;
			返回值:jQuery对象;

	eq方法
		$(selector).eq(index);
			作用:获取满足selector的jQuery对象中第index个jQuery对象
			返回值:jQuery对象

	index方法
		1、 	获取某个元素在兄弟元素之间的索引;
	    2、 语法格式:
	         $(seletor).index(elemnt);
	         	获取的是element在selector所选中的所有元素中索引;
				eg:
					$(".hot").index($("#favorite"))
				tips:这时候,必须是hot和favorite两个条件都满足,
					然后输出带有favorite的索引;

链式编程

在方法里,整个函数执行完毕之后,返回调用这个方法的对象,就可以一直点方法;
	eg:
		$("#box").css("width",200).css("height",200).css("background-color","blue");

	tips:链式编程函数执行后,函数返回值为this,因此可以再次调用;

隐式迭代

隐式:隐藏;
迭代:遍历;

很多jQuery方法都是通过隐式迭代的方式实现的
	$(“.box”).on(“click”,fun(){});
	
	jQuery提供了遍历对象的方法;
		each
			$(selector).each(function(index, element){
		
			})
			index:		代表的是当前元素在整个jq对象中的索引;
			element:	代表的是从jq对象中取出的当前元素,是一个DOM对;

属性选择器

$([attribute]);
	作用:筛选包含attribute的所有元素

$([atttribute = value]);
	作用:筛选属性的值是满足条件的标签

$([attribute != value])
	作用:凡是具有该属性,但是属性值不为value的都被选中;

多库共存(170104)

在同一个页面中导入了多个库,会发生$符号冲突的问题。
jQuery要调用要使用$,其他的库要调用也可能会使用该库。

(1)、method_1
	使用jQuery代替。
	eg:
		jQuery(".box").on("click",function(){
			console.log("test");
		});

(2)、method_2
	使用自定义的变量名来代替$符。
	eg:
		var its = jQuery.noConflict()
		its(".box").ready(function(){
			console.log("test");
		});

jquery.color.js

jQuery.color插件是一个专门用于拓展jQuery的animate方法的js库文件;
原本jQuery是不具备让颜色渐渐改变的动画效果的,使用了它就可以了。

使用插件的步骤:
	1	先引入jQuery文件
			tips:必须在插件之前,因为jQuery.color是基于jQuery的拓展;
	2	引入jQuery.color的js文件
	3	写入口函数,$(function(){		});
	4	调用jQuery或者插件的API;

jquery.lazyload.js

jQuery.lazyload插件使一款用于实现图片懒加载的jQuery拓展库;
	其中使用data-original属性来存储每一张图片将来要加载的图片的路径,
	width和height属性也是必须的,否则可能jQuery.lazyload插件使用出问题;
	eg:
		<img class="lazyload" id="box" data-original="images/1.jpg" width="1280" height="800"/>

		$("#box.lazyload").lazyload();
			tips:在滚动到的时候才会加载该内容;

jquery-ui.js

jquery提供的一套默认UI,详情见API;

eg:
		//先实现拖动功能
    $(".drag-wrapper").draggable({handle:".drag-bar"});
    	//实现缩放功能  -- 只能在底部缩放
    $(".resize-item").resizable({handles:"s"});
    	//实现排序功能
    $(".sort-item").sortable({opacity:0.3});

	tips:CSS属性,cursor:pointer;	设置该项可以改变鼠标手势;

转载于:https://my.oschina.net/zhongjunhui/blog/857905

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值