1. 程式人生 > 其它 >WEB02_Day01(中)-jQery常見特效(續)、植物大戰殭屍、輪播圖

WEB02_Day01(中)-jQery常見特效(續)、植物大戰殭屍、輪播圖

一、jQuery常見特效(續)

1.1 員工新增表格

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery實現表格的操作</title>
</head>
<body>
<input type="text" placeholder="員工姓名">
<input type="text" placeholder="員工工資">
<input type="text" placeholder="員工部門">
<input type="button" value="新增">
<hr>
<table>
<tr>
<th>姓名</th>
<th>工資</th>
<th>部門</th>
<th>操作</th>
</tr>
</table>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
//按鈕動態繫結事件 $("input:last")
$("input[type='button']").click(function () {
//alert("真棒生效了!!!");
//1.獲取使用者在三個輸入框中輸入的內容
var name = $("input:eq(0)").val();
var sal = $("input:eq(1)").val();
var dept = $("input:eq(2)").val();

console.log(name + " " +sal + " " +dept);

//2.建立1個tr和4個td標籤物件
var trObj = $("<tr></tr>")
var tdName = $("<td></td>");
var tdSal = $("<td></td>");
var tdDept = $("<td></td>");
var tdDel = $("<td><input type='button' value='刪除'></td>")

//3.將接收到的輸入資訊新增到前三個td物件文字中
tdName.text(name);
tdSal.text(sal);
tdDept.text(dept);

//4.將4個td標籤新增到tr中
trObj.append(tdName);
trObj.append(tdSal);
trObj.append(tdDept);
trObj.append(tdDel);

//5.將tr物件新增到table表格的最後方
$("table").append(trObj);

//6.給按鈕繫結刪除事件
tdDel.children().click(function () {
trObj.remove();
});

});
</script>
</body>
</html>

1.2 多選框的控制

  jQuery1.6以後,新添加了一個方法prop(),官方解釋為在獲取當前匹配的元素集中,會進行獲取第一個元素的屬性值。當使用attr()方法獲取checked的屬性值時返回的是"checked"和"",如果使用propfa()方法則屬性的值統一會返回true或者false。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery操作複選框</title>
</head>
<body>
<input type="checkbox">籃球<br>
<input type="checkbox">足球<br>
<input type="checkbox">棒球<br>
<input type="checkbox">乒乓球<br>
<input type="button" value="全選">
<input type="button" value="清空">
<input type="button" value="反選">

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
//全選按鈕
$("input:eq(4)").click(function () {

//alert('全選按鈕');
//$(":checkbox").attr("checked","checked");
//$(":checkbox").attr("checked",true);
$(":checkbox").prop("checked",true);
console.log($(":checkbox").attr('checked'));
console.log($(":checkbox").prop('checked'));
});
//清空按鈕
$("input:eq(5)").click(function () {
//alert('清空按鈕');
//$(":checkbox").attr("checked",false);
//$(":checkbox").removeAttr("checked");
$(":checkbox").prop("checked",false);
});
//反選按鈕
$("input:eq(6)").click(function () {
//alert('反選按鈕');
//方案一:遍歷所有的複選框,檢視每個複選框的屬性值是選中還是未選中
$(":checkbox").each(function () {
//this表示當前的複選框物件
if ( $(this).prop("checked")) {
//選中狀態->未選中狀態
$(this).prop("checked",false);
} else {
$(this).prop("checked",true);
}

});

});
</script>
</body>
</html>

1.3 購物車商品價格計算

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery實現對訂單金額進行操作</title>
</head>
<body>
<h2>訂單列表</h2>
<input type="checkbox" value="20">滑鼠20元<br>
<input type="checkbox" value="80">鍵盤80元<br>
<input type="checkbox" value="5000">華為手機5000元<br>
<input type="checkbox" value="2000">小米電視2000元<br>
<input type="checkbox" id="all">全選
<p>總價:0元</p>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
//所有複選框進行繫結事件獲取選中時的價格
$(":checkbox").click(function () {
/*當全選按鈕選中以後是可以觸發該事件的,
*獲取全選按鈕的當前狀態,
*將全選按鈕選中的狀態給其他複選框的狀態進行更改
*/
//alert(this.id == 'all');
if (this.id == 'all') {
var b = $(this).prop("checked");
$(":checkbox").prop("checked",b);
}
//alert('繫結成功');

var total = 0;//商品總價格
var count = 0;//商品數量
//遍歷所有的複選框(除去全選),檢視它們的狀態
$(":checkbox:not(#all)").each(function () {
//如果是選中狀態獲取value值
if ($(this).prop("checked")) {
count++;

var price = $(this).val();
//對選中商品進行價格累計
total += price*1;

}
});
//獲取複選框的個數
var num = $(":checkbox").size()-1;

//設定全選當上面商品都選中的情況下進行勾選,反著則不勾選
$("#all").prop("checked",(count==num?true:false));

//設定p標籤的文字內容
$("p").text("總價:" + total + "元");
})
</script>
</body>
</html>

二、植物大戰殭屍

2.1 版本一:

  將背景圖片新增到頁面中,並且設定背景圖片的顯示隨著瀏覽器的可見範圍進行調整,然後新增定時器,每間隔2秒鐘生成一個殭屍物件。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>打殭屍_生成殭屍01</title>
<style type="text/css">
/* 設定背景圖片 */
body {
background-image: url("../zombimgs/bg1.jpg");
}

/* 設定殭屍圖片的樣式,殭屍在頁面任意位置顯示,所以使用絕對定位 */
img {
position: absolute;
width: 60px;
height: 60px;
}

</style>
</head>
<body>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
/*
1.獲取瀏覽器的可見範圍寬高,設定背景圖片的大小和瀏覽器的大小是一致的
js獲取寬度:window.document.documentElement.clientWidth
js獲取高度:window.document.documentElement.clientHeight
*/
var w = $(window).width();
var h = $(window).height();
$("body").css("background-size",w + "px " + h + "px");

/* 2.在瀏覽器大小發生改變時,調整圖片的尺寸大小 */
onresize = function () {
var w = $(window).width();
var h = $(window).height();
console.log("瀏覽器可見範圍的寬度為:" + w + ",高度為:" + h);
/* 將瀏覽器的可見寬度和高度賦值給背景圖片作為尺寸大小 */
$("body").css("background-size",w + "px " + h + "px");

}
/* 3.生成殭屍 2000毫秒出現一個殭屍*/
var timer = setInterval(function () {
//建立圖片物件
var imgObj = $("<img src='../zombimgs/zomb0.png'>");
//設定殭屍出場的位置
var left = w - 800;
var top = parseInt(Math.random()*(h-60));
imgObj.css("left",left + "px").css("top",top + "px");
//給頁面新增殭屍圖片元素
$("body").append(imgObj);

},2000);


</script>

</body>
</html>

注意:

通過jQuery設定background-size樣式時,需要設定寬和高,這兩個數值之間需要有空格間隔

2.2 版本二:

  設定殭屍出場的位置在圖片右側,然後修改瀏覽器因生成殭屍物件後下面出現滑動條,新增殭屍移動的定時器物件,每100毫秒移動一次,一次移動4px

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>打殭屍_殭屍移動02</title>
<style type="text/css">
/* 設定背景圖片 */
body {
background-image: url("../zombimgs/bg1.jpg");

/* 隱藏瀏覽器的滑動條 */
overflow: hidden;
}

/* 設定殭屍圖片的樣式,殭屍在頁面任意位置顯示,所以使用絕對定位 */
img {
position: absolute;
width: 60px;
height: 60px;
}

</style>
</head>
<body>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
/*
1.獲取瀏覽器的可見範圍寬高,設定背景圖片的大小和瀏覽器的大小是一致的
js獲取寬度:window.document.documentElement.clientWidth
js獲取高度:window.document.documentElement.clientHeight
*/
var w = $(window).width();
var h = $(window).height();
$("body").css("background-size",w + "px " + h + "px");

/* 2.在瀏覽器大小發生改變時,調整圖片的尺寸大小 */
onresize = function () {
var w = $(window).width();
var h = $(window).height();
console.log("瀏覽器可見範圍的寬度為:" + w + ",高度為:" + h);
/* 將瀏覽器的可見寬度和高度賦值給背景圖片作為尺寸大小 */
$("body").css("background-size",w+"px " + h+"px");

}
/* 3.生成殭屍 2000毫秒出現一個殭屍*/
var timer = setInterval(function () {
//建立圖片物件
var imgObj = $("<img src='../zombimgs/zomb0.png'>");
//設定殭屍出場的位置
var left = w;
var top = parseInt(Math.random()*(h-60));
imgObj.css("left",left + "px").css("top",top + "px");
//給頁面新增殭屍圖片元素
$("body").append(imgObj);

},2000);

/*
4.殭屍移動的定時器
每次移動的畫素值 4畫素
間隔執行時間100毫秒
*/
var timeMove = setInterval(function () {
//獲取所有的圖片標籤,然後設定距左位置
$("img").each(function () {
//取出當前圖片的距左位置,然後減去4畫素,再將計算後的位置賦值給當前圖片
//解析的目的是取出px單位
var left1 = parseInt($(this).css("left"));
var left2 = left1-4;
$(this).css("left",left2 + "px");
});
},100);


</script>

</body>
</html>

2.3 版本三:

  使用滑鼠打殭屍

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>打殭屍_使用滑鼠消除殭屍03</title>
<style type="text/css">
/* 設定背景圖片 */
body {
background-image: url("../zombimgs/bg1.jpg");

/* 隱藏瀏覽器的滑動條 */
overflow: hidden;
}

/* 設定殭屍圖片的樣式,殭屍在頁面任意位置顯示,所以使用絕對定位 */
img {
position: absolute;
width: 60px;
height: 60px;
}
/* 設定h3標題標籤的位置 */
#clearzom {
float: left;
color: blue;
background-color: rgba(255, 255, 255, 0.5);
}
#enterzom {
float: right;
color: blue;
background-color: rgba(255, 255, 255, 0.5);
}
</style>
</head>
<body>
<h2 id="clearzom">消滅數量:0</h2>
<h2 id="enterzom">進屋數量:0</h2>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
/* 定義統計進屋和消滅殭屍變數 */
var clearzom = 0;//成功數量
var enterzom = 0;//失敗數量

/*
1.獲取瀏覽器的可見範圍寬高,設定背景圖片的大小和瀏覽器的大小是一致的
js獲取寬度:window.document.documentElement.clientWidth
js獲取高度:window.document.documentElement.clientHeight
*/
var w = $(window).width();
var h = $(window).height();
$("body").css("background-size",w + "px " + h + "px");

/* 2.在瀏覽器大小發生改變時,調整圖片的尺寸大小 */
onresize = function () {
var w = $(window).width();
var h = $(window).height();
console.log("瀏覽器可見範圍的寬度為:" + w + ",高度為:" + h);
/* 將瀏覽器的可見寬度和高度賦值給背景圖片作為尺寸大小 */
$("body").css("background-size",w+"px " + h+"px");

}
/* 3.生成殭屍 2000毫秒出現一個殭屍*/
var timer = setInterval(function () {
//建立圖片物件
var imgObj = $("<img src='../zombimgs/zomb0.png'>");
//設定殭屍出場的位置
var left = w;
var top = parseInt(Math.random()*(h-60));
imgObj.css("left",left + "px").css("top",top + "px");
//給頁面新增殭屍圖片元素
$("body").append(imgObj);

//殭屍圖片新增滑鼠移入事件
imgObj.mouseover(function () {
//刪除該殭屍圖片
imgObj.remove();
clearzom++;
$("#clearzom").text("成功數量:" + clearzom);
});

},2000);

/*
4.殭屍移動的定時器
每次移動的畫素值 4畫素
間隔執行時間100毫秒
*/
var timeMove = setInterval(function () {
//獲取所有的圖片標籤,然後設定距左位置
$("img").each(function () {
//取出當前圖片的距左位置,然後減去4畫素,再將計算後的位置賦值給當前圖片
//解析的目的是取出px單位
var left1 = parseInt($(this).css("left"));
var left2 = left1-4;
$(this).css("left",left2 + "px");

//判斷殭屍是否進屋
if (left1 <= 150) {
//移除進屋殭屍
$(this).remove();
enterzom++;
$("#enterzom").text("進屋數量:" + enterzom);
}
});
},100);


</script>

</body>
</html>

2.4 版本四:

  殭屍種類的變化以及遊戲狀態的改變

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>打殭屍_遊戲狀態04</title>
<style type="text/css">
/* 設定背景圖片 */
body {
background-image: url("../zombimgs/bg1.jpg");

/* 隱藏瀏覽器的滑動條 */
overflow: hidden;
}

/* 設定殭屍圖片的樣式,殭屍在頁面任意位置顯示,所以使用絕對定位 */
img {
position: absolute;
width: 60px;
height: 60px;
}
/* 設定h3標題標籤的位置 */
#clearzom {
float: left;
color: blue;
background-color: rgba(255, 255, 255, 0.5);
}
#enterzom {
float: right;
color: blue;
background-color: rgba(255, 255, 255, 0.5);
}
</style>
</head>
<body>
<h2 id="clearzom">消滅數量:0</h2>
<h2 id="enterzom">進屋數量:0</h2>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
/* 定義統計進屋和消滅殭屍變數 */
var clearzom = 0;//成功數量
var enterzom = 0;//失敗數量

/*
1.獲取瀏覽器的可見範圍寬高,設定背景圖片的大小和瀏覽器的大小是一致的
js獲取寬度:window.document.documentElement.clientWidth
js獲取高度:window.document.documentElement.clientHeight
*/
var w = $(window).width();
var h = $(window).height();
$("body").css("background-size",w + "px " + h + "px");

/* 2.在瀏覽器大小發生改變時,調整圖片的尺寸大小 */
onresize = function () {
var w = $(window).width();
var h = $(window).height();
console.log("瀏覽器可見範圍的寬度為:" + w + ",高度為:" + h);
/* 將瀏覽器的可見寬度和高度賦值給背景圖片作為尺寸大小 */
$("body").css("background-size",w+"px " + h+"px");

}
/* 3.生成殭屍 2000毫秒出現一個殭屍*/
var timer = setInterval(function () {

var type = parseInt(Math.random()*4);
//建立圖片物件
var imgObj = $("<img src='../zombimgs/zomb"+ type +".png'>");
//設定殭屍出場的位置
var left = w;
var top = parseInt(Math.random()*(h-60));
imgObj.css("left",left + "px").css("top",top + "px");
//給頁面新增殭屍圖片元素
$("body").append(imgObj);

//殭屍圖片新增滑鼠移入事件
imgObj.mouseover(function () {
//刪除該殭屍圖片
imgObj.remove();
clearzom++;
$("#clearzom").text("成功數量:" + clearzom);
});

},2000);

/*
4.殭屍移動的定時器
每次移動的畫素值 4畫素
間隔執行時間100毫秒
*/
var timeMove = setInterval(function () {
//獲取所有的圖片標籤,然後設定距左位置
$("img").each(function () {
//取出當前圖片的距左位置,然後減去4畫素,再將計算後的位置賦值給當前圖片
//解析的目的是取出px單位
var left1 = parseInt($(this).css("left"));
var left2 = left1-40;
$(this).css("left",left2 + "px");

//判斷殭屍是否進屋
if (left1 <= 150) {
//移除進屋殭屍
$(this).remove();
enterzom++;
$("#enterzom").text("進屋數量:" + enterzom);

//如果殭屍進屋數量達到30,遊戲停止
if (enterzom >= 10) {

if (confirm("GAME OVER")) {
//繼續玩,重新整理瀏覽器
location.reload();
} else {
//清空螢幕所有的殭屍
$("img").remove();
/*
停止定時器,不需要兩個定時器都停止,
只需要停止生成殭屍的定時器即可,因為
沒有殭屍了就不會進行移動
*/
clearInterval(timer);
}
}
}
});
},100);


</script>

</body>
</html>

三、輪播圖

3.1 版本一:

  在頁面中新增三張圖片,並一字展開,隱藏瀏覽器滑動條

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>輪播圖_顯示圖片01</title>
<style type="text/css">
/* 設定div的尺寸大小和圖片尺寸大小一致 */
div,img {
width: 1000px;
height: 400px;
}
/* 設定圖片以div為參照依據 */
div {
position: relative;
/* 處理瀏覽器帶滑動條問題 */
overflow: hidden;
}
/* 設定圖片為絕對定位 */
img {
position: absolute;
}
</style>
</head>
<body>
<div>
<img src="http://doc.canglaoshi.org/tstore_v1/images/itemCat/itemCat_banner1.png">
<img src="http://doc.canglaoshi.org/tstore_v1/images/itemCat/itemCat_banner2.png">
<img src="http://doc.canglaoshi.org/tstore_v1/images/itemCat/itemCat_banner3.png">
</div>


<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
//將三張圖片在一字排開,不要互相之間遮擋
var imgwidth = 1000;

//for(var i = 0; i < 3 ; i++)
$("img").each(function (i) {
$(this).css("left", i * imgwidth + "px");
});
</script>
</body>
</html>