1. 程式人生 > >web前端基礎案例:圖片隨機切換特效

web前端基礎案例:圖片隨機切換特效

javascript加css製作圖片隨機切換特效

知識點:靜態佈局技巧,定位,浮動,背景設定,CSS樣式選擇器,JS特效,JQ庫呼叫,隨機函式運用。

html程式碼:

	<body><!--身體 視覺化標籤-->
		<!--div盒子模型標籤 寬度 高度 位置 邊框 背景-->
		<div id="box"><!--id="自定義的名稱" 唯一的(身份證號) 命名規範(見名知義:用有語義的英文單詞)-->
			<ul><!--無序列表標籤-->
				<li>
					<div class="top1">
						<img src="images/1.jpg">
						<img src="images/2.jpg">
					</div>
					<div class="bottom1">
						<img src="images/3.jpg">
						<img src="images/4.jpg">
					</div>
				</li>
				<li>
					<div class="top2">
						<img src="images/5.jpg">
						<img src="images/6.jpg">
					</div>
					<div class="center">
						<img src="images/7.jpg">
						<img src="images/8.jpg">
					</div>
					<div class="bottom2">
						<img src="images/9.jpg">
						<img src="images/10.jpg">
					</div>
				</li>
				<li class="last"><!--class 可重複的(姓名)-->
					<div class="top3">
						<img src="images/11.jpg">
						<img src="images/12.jpg">
					</div>
					<div class="bottom3">
						<img src="images/13.jpg">
						<img src="images/14.jpg">
					</div>
				</li>
			</ul>
		</div>
css程式碼:
		<style>/* css樣式 */
			/* 
				第一步:找到對應的標籤元素
				第二步:設定相應的屬性
			*/
			*{/* 通用選擇器:選擇到所有的標籤元素*/
				margin:0;/* 外邊距 */
				padding:0;/* 內邊距 */
			}
			#box{/* # id選擇器*/
				width:1120px;/*寬度*/
				height:600px;/*高度*/
				background:#aaa;/*背景顏色*/
				margin:100px auto;/*上下100px 左右自動(居中)*/
			}
			#box ul li{/*混合選擇器*/
				list-style:none;/*去除前面的小黑圓點*/
				width:350px;
				height:600px;
				/*background:blue;*/
				float:left;/*左浮動:與父元素的左端對齊依次的往右端顯示*/
				margin-right:10px;
			}
			#box ul li.last{/* . class類選擇器*/
				width:400px;
				margin:0;
			}
			#box ul li div{
				position:relative;/*相對定位:參考物*/
				width:100%;/* 與父元素的寬度一樣*/
				overflow:hidden;/*超出隱藏*/
			}
			.top1{
				height:250px;
				margin-bottom:10px;
			}
			.bottom1{
				height:340px;
			}
			.top2{
				height:180px;
				margin-bottom:10px;
			}
			.center{
				height:220px;
				margin-bottom:10px;
			}
			.bottom2{
				height:180px;
			}
			.top3{
				height:340px;
				margin-bottom:10px;
			}
			.bottom3{
				height:250px;
			}
			#box ul li div img{
				position:absolute;/*絕對定位:定位元素 */
				left:0;/*距離參考物左端的距離*/
				top:0;/*距離參考物上端的距離*/
				opacity:1;/*透明度*/
			}
		</style>
javascript程式碼:
		<script src="js/jquery-1.11.3.min.js"></script>
		<script>
			//alert($);//彈出jq的代理函式$
			//$("#box ul li div") 選擇到所有的小盒子
			var w = 0;//定義一個變數來儲存寬度
			var h = 0;//定義一個變數來儲存高度
			var direction = [];//定義一個數組來儲存移動的方向
			$("#box ul li div").hover(function(){//滑鼠移上去實現什麼功能
				//獲取每個滑鼠移上去的元素的寬高
				//$(this) 滑鼠移到誰上面就指代誰
				w = $(this).width();
				h = $(this).height();
				direction = [
					{ "top" : -h + "px","opacity" : 0},//上
					{ "top" : h + "px","opacity" : 0 },//下
					{ "left" : -w + "px","opacity" : 0},//左
					{"left" : w + "px","opacity" : 0 }//右
				];

				//做一個隨機數
			},function(){//滑鼠移開實現什麼功能
				//Math.random() 生成一個0-1之間的隨機小數
				//Math.floor 向下取整  3.99  3
				var n = Math.floor(Math.random()*4);//0-3
				//eq(1) 找到第二張
				//animate({需要改變的屬性名:屬性值},動畫執行的時間,function(){})自定義動畫
				$(this).find("img").eq(1).animate(direction[n],1000,function(){//動畫完成之後再執行什麼功能
					$(this).css({
						"left" : 0,
						"top" : 0,
						"opacity" : 1
					})
					$(this).prependTo($(this).parent());
				});
				
			});
		</script>

想學習web前端或者正在學習web前端的小夥伴可以來我的前端群,575308719,有視訊、原始碼、學習方法等大量乾貨分享。