天天看點

一文深入JQuery

(一文深入JQuery)

動畫

三種方式顯示和隐藏元素

預設顯示和隐藏方式

show([speed,[easing],[fn]])

  1. 參數:
  2. speed:動畫的速度。三個預定義的值("slow","normal", "fast")或表示動畫時長的毫秒數值(如:1000)
  3. easing:用來指定切換效果,預設是"swing",可用參數"linear"
  • swing:動畫執行時效果是 先慢,中間快,最後又慢
  • linear:動畫執行時速度是勻速的
  1. fn:在動畫完成時執行的函數,每個元素執行一次。

hide([speed,[easing],[fn]])

toggle([speed],[easing],[fn])

滑動顯示和隐藏方式

slideDown([speed],[easing],[fn])

slideUp([speed,[easing],[fn]])

slideToggle([speed],[easing],[fn])

淡入淡出顯示和隐藏方式

fadeIn([speed],[easing],[fn])

fadeOut([speed],[easing],[fn])

fadeToggle([speed,[easing],[fn]])

周遊

js的周遊方式

for(初始化值;循環結束條件;步長)

jq的周遊方式

jq對象.each(callback)

  1. 文法:

    jquery對象.each(function(index,element){});

  • index:就是元素在集合中的索引
  • element:就是集合中的每一個元素對象
  • this:集合中的每一個元素對象
  1. 回調函數傳回值:
  • true:如果目前function傳回為false,則結束循環(break)。
  • false:如果目前function傳回為true,則結束本次循環,繼續下次循環(continue)

$.each(object, [callback])

for..of: jquery 3.0 版本之後提供的方式

for(元素對象 of 容器對象)

事件綁定

jquery标準的綁定方式

  • jq對象.事件方法(回調函數);
  • 注:如果調用事件方法,不傳遞回調函數,則會觸發浏覽器預設行為。
    • 表單對象.submit();//讓表單送出

on綁定事件/off解除綁定

  • jq對象.on("事件名稱",回調函數)
  • jq對象.off("事件名稱")
    • 如果off方法不傳遞任何參數,則将元件上的所有事件全部解綁

事件切換:toggle

  • jq對象.toggle(fn1,fn2...)
    • 當單擊jq對象對應的元件後,會執行fn1.第二次點選會執行fn2.....
  • 注意:1.9版本 .toggle() 方法删除,jQuery Migrate(遷移)插件可以恢複此功能。  

案例

廣告顯示和隐藏

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>廣告的自動顯示與隐藏</title>
	<style>
		#content{width:100%;height:500px;background:#999}
	</style>

	<!--引入jquery-->
	<script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>
	<script>
		/*
			需求:
				1. 當頁面加載完,3秒後。自動顯示廣告
				2. 廣告顯示5秒後,自動消失。

			分析:
				1. 使用定時器來完成。setTimeout (執行一次定時器)
				2. 分析發現JQuery的顯示和隐藏動畫效果其實就是控制display
				3. 使用  show/hide方法來完成廣告的顯示
		 */

		//入口函數,在頁面加載完成之後,定義定時器,調用這兩個方法
		$(function () {
		   //定義定時器,調用adShow方法 3秒後執行一次
		   setTimeout(adShow,3000);
		   //定義定時器,調用adHide方法,8秒後執行一次
			setTimeout(adHide,8000);
		});
		//顯示廣告
		function adShow() {
			//擷取廣告div,調用顯示方法
			$("#ad").show("slow");
		}
		//隐藏廣告
		function adHide() {
			//擷取廣告div,調用隐藏方法
			$("#ad").hide("slow");
		}



	</script>
</head>
<body>
<!-- 整體的DIV -->
<div>
	<!-- 廣告DIV -->
	<div id="ad" style="display: none;">
		<img style="width:100%" src="../img/adv.jpg" />
	</div>

	<!-- 下方正文部分 -->
	<div id="content">
		正文部分
	</div>
</div>
</body>
</html>
           

抽獎

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>jquery案例之抽獎</title>
	<script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>

	<script language='javascript' type='text/javascript'>

		/*
			分析:
				1. 給開始按鈕綁定單擊事件
					1.1 定義循環定時器
					1.2 切換小相框的src屬性
						* 定義數組,存放圖檔資源路徑
						* 生成随機數。數組索引


				2. 給結束按鈕綁定單擊事件
					1.1 停止定時器
					1.2 給大相框設定src屬性

		 */
		var imgs = ["../img/man00.jpg",
					"../img/man01.jpg",
					"../img/man02.jpg",
					"../img/man03.jpg",
					"../img/man04.jpg",
					"../img/man05.jpg",
					"../img/man06.jpg",
					];
		var startId;//開始定時器的id
		var index;//随機角标
		$(function () {
			//處理按鈕是否可以使用的效果
			$("#startID").prop("disabled",false);
			$("#stopID").prop("disabled",true);


		   //1. 給開始按鈕綁定單擊事件
			$("#startID").click(function () {
				// 1.1 定義循環定時器 20毫秒執行一次
				startId = setInterval(function () {
					//處理按鈕是否可以使用的效果
					$("#startID").prop("disabled",true);
					$("#stopID").prop("disabled",false);


					//1.2生成随機角标 0-6
					index = Math.floor(Math.random() * 7);//0.000--0.999 --> * 7 --> 0.0-----6.9999
					//1.3設定小相框的src屬性
					$("#img1ID").prop("src",imgs[index]);

				},20);
			});


			//2. 給結束按鈕綁定單擊事件
			$("#stopID").click(function () {
				//處理按鈕是否可以使用的效果
				$("#startID").prop("disabled",false);
				$("#stopID").prop("disabled",true);


			   // 1.1 停止定時器
				clearInterval(startId);
			   // 1.2 給大相框設定src屬性
				$("#img2ID").prop("src",imgs[index]).hide();
				//顯示1秒之後
				$("#img2ID").show(1000);
			});
		});




	</script>

</head>
<body>

<!-- 小像框 -->
<div style="border-style:dotted;width:160px;height:100px">
	<img id="img1ID" src="../img/man00.jpg" style="width:160px;height:100px"/>
</div>

<!-- 大像框 -->
<div
		style="border-style:double;width:800px;height:500px;position:absolute;left:500px;top:10px">
	<img id="img2ID" src="../img/man00.jpg" width="800px" height="500px"/>
</div>

<!-- 開始按鈕 -->
<input
		id="startID"
		type="button"
		value="點選開始"
		style="width:150px;height:150px;font-size:22px">

<!-- 停止按鈕 -->
<input
		id="stopID"
		type="button"
		value="點選停止"
		style="width:150px;height:150px;font-size:22px">


</body>
</html>
           

插件:增強JQuery的功能

實作方式:

  1. $.fn.extend(object)
  • 增強通過Jquery擷取的對象的功能  $("#id")
  1. $.extend(object)
  • 增強JQeury對象自身的功能  $/jQuery