JS轻量级框架:jQuery

#jQuery

Query是一个JavaScript框架,封装JavaScript常用的功能代码,提供一种简便的

JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

##jQuery对象
这里写图片描述

#jQuery开发中所遇到的对象

  • 通过$所获得的是jQuery对象
选择器: $("p")
强转: $(p)
创建对象: $("")
  • 修改数据的方法返回jQuery对象
obj.html("abc")
obj.attr("src","")
  • 若查询到的是元素则返回jQuery对象
obj.parent()
obj.next()
  • 若读取到的是文本则返回DOM对象
obj.html()
obj.val()
  • 万能的判断方式
    控制台输出此对象,若是数组则是jQuery对象

#jQuery选择器(查询节点)
jQuery选择器类似于CSS选择,能够实现定位元素,施加行为使用选择器能够将内容与行为分离

##基本选择器

  • 元素选择器:依据标签名定位元素
    $(“标签名”)

  • 类选择器:根据class属性定位元素
    $(".class属性名")

  • id选择器:根据id属性定位元素
    $("#id")

  • 选择器组:通过一组属性定位元素
    $("#id, .class属性名")

  • 层次选择器

  • $(“select1 select2”)
    在select1元素下,选中所有满足select2的子孙元素

  • $(“select1 > select2”)
    在select1元素下,选中所有满足select2的子元素

  • $(“select1 + select2”)
    选中 select1元素的,满足select2的下一个弟弟

  • $(“select1 ~ select2”)
    选中 select1元素的,满足select2的所有弟弟
    ##过滤选择器

  • 基本过滤选择器

  • 根据元素的基本特征定位元素,常用于表格和列表
    first,:last:$(“tr:first”)
    :not(selector):把满足selector的元素排除在外
    :even:挑选偶数行
    :odd:挑选奇数行
    :eq(index):下标等于index的元素
    :gt(index):下标大于index的元素
    :lt(index):下标小于index 的元素
  • 内容过滤选择器

  • 根据文本内容定位元素
    :contains(text):选中包含给定文本的元素
    :empty:选中所有不包含子元素或文本的空元素
    $(“p:contains(‘月饼’)”)

  • 可见性过滤选择器
    根据可见性定位元素
    :hidden:选中所有不可见元素,或type为hidden的元素
    :visible:选中所有可见元素
    $(“input:hidden”)

  • 属性过滤选择器
    根据属性定位元素
    [attribute]:选中具有attribute属性的元素
    [attribute=value]:选中属性等于value的元素
    [attribute!=value]:选中属性不等于value的元素
    $(“input[value=‘点击’]”)

  • 状态过滤选择器
    根据状态定位元素
    :enabled:选中可用的元素
    :disabled:选中不可用的元素
    :checked:选中被选中的checkbox
    :selected:选中被选中的option
    $(“input:selected”)

    ##表单选择器
    :text,:password,:radio,:checkbox
    :submit,:reset,:button
    :file,:hidden
    示例:$(":text")

##读写节点

$(function(){
		//html() == innerHTML
		console.log($("p:eq(0)").html());
		$("p:eq(0)").html("jQuery支持<u>读写</u>节点");
		//text() == innerText
		console.log($("p:eq(1)").text());
		$("p:eq(1)").text("jQuery支持<u>增删</u>节点");
		//val() == value
		console.log($(":text:first").val());
		$(":text:first").val("How are you");
		//attr() == getAttribute(),setAttribute()
		console.log($("img:first").attr("src"));
		$("img:first").attr("src","../images/02.jpg");
	});

##增删节点

//创建节点
var li = $("<li>天津</li>");

//插入DOM
parent.append(li);
$("ul").prepend(li);
$("#gz").after(li);
brother.before(obj);

//删除DOM	
$("#gz").remove();
obj.remove(selector);
obj.empty();

##节点遍历

obj.children();//所有孩子
obj.next();//下一个兄弟
obj.prv();//上一个兄弟
obj.siblings();//所有兄弟
obj.findSelector();
obj.parent();

#jQuery样式操作

$(function(){
		$("p").addClass("big").addClass("important");
		$("p").removeClass("big").removeClass("important");
		console.log($("p").hasClass("big"));
		
		setInterval(function(){
			$("p").toggleClass("big");
		},200);
		
	});
	hasClass();
	css("");//读取css值
	/css("","")//设置多个样式
	

#jQuery事件

  • 动态绑定
    $(fn)和window.onload
    onload写多次则后者会覆盖前者,而 ( f n ) 写 多 次 都 有 效 . o n l o a d 在 整 个 网 页 加 载 完 触 发 , 而 (fn)写多次都有效. onload在整个网页加载完触发,而 (fn).onload,(fn)是在标签加载完就触发.
    bind
    obj.bind(“click”,function(){})
    obj.click(function(){})
  • 获取事件源
    e.target()
  • 取消冒泡
    e.stopPropagation()
  • 合成事件
$(function(){
		//给图片绑定悬停事件
		$("img").hover(
			function(){
				$(this).addClass("big");
				//toggleClass("big")
				//width(250)
				//css("width","250px")
				//attr("class","big")
			},//悬停时
			function(){
				$(this).removeClass("big");
			} //离开时
		);
		//启动定时器
		setInterval(function(){
			//让图片在显示与隐藏间切换
			$("img").toggle();
		},500);
	});
  • 模拟操作
	$(function(){
		//给按钮x绑定单击事件
		$("#gg>input").click(function(){
			$("#gg").slideUp(500);
		});
		//推迟3秒
		setTimeout(function(){
			//对按钮x模拟单击事件,即
			//让电脑自动点击一下按钮x
			$("#gg>input").trigger("click");
		},3000);
	});

#jQuery动画

  • show() hide()
  • slideDown() slideUp()
  • fadeIn() fadeOut()
    上述函数都有两个参数(执行时间,回调函数)
  • 自定义动画
  • animate(偏移位置,执行时间,回调函数)
<style>
	#d1 {
		width: 200px;
		height: 200px;
		background-color: red;
		/*自定义动画基于定位(相对/绝对/固定)*/
		position: relative;
	}
	#d2 {
		width: 200px;
		height: 400px;
		background-color: blue;
		position: fixed;
		top: 100px;
		right: -150px;
	}
</style>
<script src="../js/jquery-1.11.1.js"></script>
<script>
	function f1() {
		$("#d1").show(3000);
	}
	function f2() {
		//参数2是一个函数,jQuery会在动画完成后自动调用它.
		//像这样的,需要传递给方法并且由方法自动调用的函数,
		//通常称之为回调函数.
		$("#d1").hide(3000,function(){
			console.log("OVER");
		});
		//动画的实现原理:
		//通过定时器不断修改元素的样式(大小及透明度).
		//当前方法f2相当于主线程,调用的hide方法,
		//相当于启动了定时器,即相当于启动了支线程.
		//主线程和支线程并发执行,所以主线程立刻输出"完成",
		//而动画却在3秒后才完成.
		console.log("完成");
	}
	$(function(){
		//给d1绑定悬停事件
		$("#d1").hover(
			function(){
				$(this).animate({"left":"20px"},500);//自定义动画
			},
			function(){
				$(this).animate({"left":"0"},500);
			}
		);
		//给d2绑定悬停事件
		$("#d2").hover(
			function(){
				$(this).animate({"right":0},500);
			},
			function(){
				$(this).animate({"right":"-150px"},500);
			}
		);
	});
</script>
  • 显示、隐藏的动画效果
    通过同时改变元素的宽度和高度来实现显示或隐藏元素
  • 语法
    $(selector).hide(speed, callack)
    $(selector).show(speed, callback)
  • 参数
    speed:可选。规定隐藏/显示的速度,取值为:“slow”, "fast"或毫秒
    callback:可选。是隐藏/显示完成后所执行的函数名称
    对象隐藏后会释放所占有的空间
  • 上下滑动式动画效果
    通过改变高度来实现显示或隐藏元素。图像元素与其他元素效果稍有不同
  • $(selector).slideUp(speed, callback)
    对象向上滑动,对象折叠,隐藏对象
  • $(selector).slideDown(speed, callback)
    对象向下滑动,对象展开,显示对象
  • $(selector).slideToggle(speed, callback)
    交替执行以上两个方法
    参数同以上所释相同
  • 淡入淡出式动画效果
    通过改变不透明度opacity来实现显示或隐藏元素
  • $(selector).fadeIn(speed, callback)
    显示元素
  • $(selector).fadeOut(speed, callback)
    隐藏元素
  • $(selector).fadeToggle(speed, callback)
    交替执行以上两个方法
  • $(selector).fadeTo(speed, opacity, callback)
    参数callback同以上相同
    speed此处是必需的
    opacity必需。将淡入淡出效果设置为给定的不透明度(值介于0与1之间)
  • 自定义动画效果(animate)
    语法
  • $(selector).animate({params}, speed, callback);
    参数
    params定义形成动画的CSS属性采用直接量创建对象体现speed, callback同上
  • 操作单个属性
    示例:$("#div1").animate({left:‘250px’});
    由于元素默认是静态的,如想要移动元素,需将其position属性设置为relative,fixed或absolute
    不管写几个animate,都是相对于原始位置的偏移

#小知识点


账号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值