前言:
w:如果說你是夏夜的螢火,孩子們爲你唱歌,那麼我是想要畫你的手;你看我多麼渺小一個我,因爲你有夢可做,也許你不會爲我停留,那就讓我站在你的背後。
y:就這?說好不哭。
w:爲何唱着這首歌?
y:好心分手?
實現商品詳情頁面中的商品圖片切換效果和商品信息切換效果及圖片放大鏡效果(有福利呦)
預覽如下:
shoppingDetail.html:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>漫步時尚廣場-商品詳情</title>
<link href="css/detail.css" rel="stylesheet" type="text/css">
<!--解決部分瀏覽器對HTML5不支持-->
<!--[if IE]>
<script>
document.createElement("header");
document.createElement("footer");
document.createElement("nav");
document.createElement("article");
document.createElement("section");
</script>
<![endif]-->
<script type="text/javascript" src="js/goodsOperator.js"></script>
</head>
<body>
<article id="main">
<!--頂部區域 start-->
<header class="top_bg">
<div class="top_content">
<div class="floatl"><img src="images/star.jpg">收藏 | HI,歡迎來訂購 !<a href="#" class="orange">[請登錄]</a> <a href="#" class="orange"> [免費註冊]</a></div>
<div class="floatr">客戶服務<img src="images/arrow.gif"> 網站導航<img src="images/arrow.gif"> <span class="droparrow"><span class="shopcart"></span>我的購物車<span class="orange">0</span>件<img src="images/arrow.gif" /></span></div>
</div>
</header>
<!--頂部區域 end-->
<!--logo和banner start-->
<div class="logo"><img src="images/logo.jpg" ><img src="images/banner.jpg" ></div>
<!--logo和banner end-->
<!--菜單導航 start-->
<nav class="nav_bg">
<div class="nav_content">
<ul class="menu_nav">
<li ><a href="shoppingIndex.html" class="white">首頁</a></li>
<li><a href="shoppingShow.html" class="white">最新上架</a></li>
<li>品牌活動</li>
<li>原廠直供</li>
<li>團購</li>
<li>限時搶購</li>
<li>促銷打折</li>
</ul>
</div>
</nav>
<!--菜單導航 end-->
<!--中間部分 start-->
<section>
<div class="main">
<nav>
<ul class="menu">
<li><span class="title">女裝</span></li>
<li><span class="red_dot"></span><a href="#" >上衣</a><span class="right_arrow"></span></li>
<li><span class="red_dot"></span><a href="#" >下裝</a><span class="right_arrow"></span></li>
<li><span class="red_dot"></span><a href="#" >連衣裙</a><span class="right_arrow"></span></li>
<li><span class="red_dot"></span><a href="#" >內衣</a><span class="right_arrow"></span></li>
<li><span class="title">男裝</span></li>
<li><span class="red_dot"></span><a href="#" >T恤</a><span class="right_arrow"></span></li>
<li><span class="red_dot"></span><a href="#" >短褲</a><span class="right_arrow"></span></li>
<li><span class="red_dot"></span><a href="#" >襯衫</a><span class="right_arrow"></span></li>
<li><span class="title">童裝</span></li>
<li><span class="red_dot"></span><a href="#" >上衣</a><span class="right_arrow"></span></li>
<li><span class="red_dot"></span><a href="#" >褲子</a><span class="right_arrow"></span></li>
<li><span class="title">運動</span></li>
<li><span class="red_dot"></span><a href="#" >運動褲</a><span class="right_arrow"></span></li>
<li><span class="red_dot"></span><a href="#" >跑步鞋</a><span class="right_arrow"></span></li>
</ul>
</nav>
<!--購物分類end-->
<!--中間區 start-->
<div class="middle">
<h1 class="pic_title">商品詳情</h1>
<div class="left_pic">
<div id="box">
<img src="images/showdetail/dd1.jpg" width="400" height="400" id="showGoodsPicture">
<div id="shade"></div>
</div>
<ul class="small_piclist" id="goodsList">
<li><img src="images/showdetail/dd1.jpg" onclick="changeGoodsImage(this)"></li>
<li><img src="images/showdetail/dd2.jpg" onclick="changeGoodsImage(this)"></li>
<li><img src="images/showdetail/dd3.jpg" onclick="changeGoodsImage(this)"></li>
<li><img src="images/showdetail/dd4.jpg" onclick="changeGoodsImage(this)"></li>
<li><img src="images/showdetail/dd5.jpg" onclick="changeGoodsImage(this)"></li>
</ul>
<!--canvas不能通過樣式設置大小,只能通過屬性設置-->
<canvas id="canvas" width="400px" height="400px"></canvas>
</div>
<div class="right">
<h1 class="font16">冬季新款牛仔外套女中長款加厚<br/>
女冬裝連帽毛領加絨牛仔棉衣女風衣</h1>
<img src="images/showdetail/pic_mess.jpg"> </div>
<div class="clear"></div>
<ul class="tab" id="goodsTabs">
<li class="tab_active" onClick="changeGoodsInfo(this)">商品詳情</li>
<li onClick="changeGoodsInfo(this)">商品評價</li>
<li onClick="changeGoodsInfo(this)">成交記錄</li>
</ul>
<article class="tab_content1">
<ul class="particulars">
<li title=" 修身">服裝版型: 修身</li>
<li title=" 甜美">風格: 甜美</li>
<li title=" 瑞麗">甜美: 瑞麗</li>
<li title=" 中長款">衣長: 中長款</li>
<li title=" 長袖">袖長:長袖</li>
<li title=" 常規">袖型: 常規</li>
<li title=" 帶帽">領型:帶帽</li>
<li title=" 拉鍊">衣門襟:拉鍊</li>
<li title=" 純色">圖案: 純色</li>
<li title=" 81%(含)-90%(含)">成分含量:81%(含)-90%(含)</li>
<li title=" 棉">質地: 棉</li>
<li title=" 25-29週歲">適用年齡: 25-29週歲</li>
<li title=" 2015年冬季">年份季節:2015年冬季</li>
<li title=" 深藍色 藍色">顏色分類: 深藍色 藍色</li>
<li title=" M L XL 2XL">尺碼:M L XL 2XL</li>
</ul>
<section> <img src="images/showdetail/detail1.jpg"> <img src="images/showdetail/detail2.jpg"> <img src="images/showdetail/detail3.jpg" class="img_border"> <img src="images/showdetail/detail4.jpg" class="img_border"> <img src="images/showdetail/detail5.jpg" class="img_border"><img src="images/showdetail/detail6.jpg" class="img_border"></section>
</article>
<article class="tab_content2 none"><img src="images/showdetail/pinglun.jpg"/></article>
<article class="tab_content3 none">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th>買家</th>
<th>淘寶價</th>
<th>數量</th>
<th>付款時間</th>
<th>款式和型號</th>
</tr>
</thead>
<tbody>
<tr>
<td> a**男 (匿名) </td>
<td><em class="price2">¥198.00</em></td>
<td>1</td>
<td> 2015-07-31 20:08:39 </td>
<td><div>
<p>顏色分類:深藍色[胸前格紋]</p>
<p>尺碼:L</p>
</div></td>
</tr>
<tr>
<td> 閨**你 (匿名) </td>
<td><em class="price2">¥198.00</em></td>
<td>1</td>
<td> 2015-07-27 14:05:17 </td>
<td><div>
<p>顏色分類:藍色[口袋格紋]</p>
<p>尺碼:L</p>
</div></td>
</tr>
<tr>
<td> w**0 (匿名)</td>
<td><em class="price2">¥198.00</em></td>
<td>1</td>
<td> 2015-07-23 12:33:54 </td>
<td><div>
<p>顏色分類:深藍色[胸前格紋]</p>
<p>尺碼:L</p>
</div></td>
</tr>
<tr>
<td> a**u (匿名)</td>
<td><em class="price2">¥198.00</em></td>
<td>1</td>
<td> 2015-07-23 12:04:19 </td>
<td><div>
<p>顏色分類:藍色[口袋格紋]</p>
<p>尺碼:L</p>
</div></td>
</tr>
<tr>
<td> 落**1 (匿名) </td>
<td><em class="price2">¥198.00</em></td>
<td>1</td>
<td> 2015-07-22 21:39:27 </td>
<td><div>
<p>顏色分類:深藍色[胸前格紋]</p>
<p>尺碼:L</p>
</div></td>
</tr>
<tr>
<td> 6**s (匿名) </td>
<td><em class="price2">¥198.00</em></td>
<td>1</td>
<td> 2015-07-12 15:00:30 </td>
<td><div>
<p>顏色分類:藍色[口袋格紋]</p>
<p>尺碼:L</p>
</div></td>
</tr>
</tbody>
</table>
</article>
<!--品牌活動-->
<article>
<h1 class="pic_title">看了又看</h1>
<ul class="pic_list4">
<li><img src="images/showdetail/ss1.jpg" title="2015新款條紋顯瘦V領短袖露背寬鬆連身褲"/>
<p>2015新款條紋顯瘦V領短袖露背寬鬆連身褲</p>
</li>
<li><img src="images/showdetail/ss2.jpg" title="2015女士新款百搭休閒闊腿褲高腰紅色短褲"/>
<p>2015女士新款百搭休閒闊腿褲高腰紅色短褲</p>
</li>
<li><img src="images/showdetail/ss3.jpg" title="女版街頭個性休閒口袋純色衛衣吊帶哈倫褲"/>
<p>女版街頭個性休閒口袋純色衛衣吊帶哈倫褲</p>
</li>
<li><img src="images/showdetail/ss4.jpg" title="韓版簡約百搭五分袖喇叭袖圓領打底短袖"/>
<p>韓版簡約百搭五分袖喇叭袖圓領打底短袖</p>
</li>
<li><img src="images/showdetail/ss5.jpg" title="卡瑪婭秋裝新款女裝 圓領純棉上衣棉T恤" />
<p>卡瑪婭秋裝新款女裝 圓領純棉上衣棉T恤</p>
</li>
</ul>
<article>
</div>
<!--中間區 end-->
<!--右側熱門推薦 start-->
<aside class="right_nav">
<h1 class="notice_title"> 熱門推薦 </h1>
<ul class="pic_list3">
<ul>
<li><a href="#"><img src="images/shopshow/s1.jpg" /></a>
<p class="price2">¥56.00元</p>
</li>
<li><a href="#"><img src="images/shopshow/s2.jpg" /></a>
<p class="price2">¥97.00元</p>
</li>
<li><a href="#"><img src="images/shopshow/s3.jpg" /></a>
<p class="price2">¥89.00元</p>
</li>
<li><a href="#"><img src="images/shopshow/s4.jpg" /></a>
<p class="price2">¥69.00元</p>
</li>
<li><a href="#"><img src="images/shopshow/s5.jpg" /></a>
<p class="price2">¥89.00元</p>
</li>
<li><a href="#"><img src="images/shopshow/s6.jpg" /></a>
<p class="price2">¥93.00元</p>
</li>
<li><a href="#"><img src="images/shopshow/s7.jpg" /></a>
<p class="price2">¥58.00元</p>
</li>
<li><a href="#"><img src="images/shopshow/s8.jpg" /></a>
<p class="price2">¥69.00元</p>
</li>
<li><a href="#"><img src="images/shopshow/s9.jpg" /></a>
<p class="price2">¥78.00元</p>
</li>
</ul>
</ul>
</aside>
</div>
</section>
<!--右側熱門推薦 end-->
<!--中間部分 end-->
<footer>
<div class="clear"></div>
<div class="foot">
<div class="foot_title">
<ul class="foot_pic">
<li><img src="images/gray1.jpg" ></li>
<li><img src="images/gray2.jpg" ></li>
<li><img src="images/gray3.jpg" ></li>
<li><img src="images/gray4.jpg" ></li>
<li><img src="images/gray5.jpg" ></li>
</ul>
</div>
<ul class="foot_list">
<li>
<div class="floatl">
<p class="red1"></p>
<p class="line1"></p>
</div>
<ul class="floatl">
<li class="font16 padding-bottom">新手指導</li>
<li>用戶註冊</li>
<li>電話下單</li>
<li>購物流程</li>
<li>購物保障</li>
<li>服務協議</li>
</ul>
</li>
<li>
<div class="floatl">
<p class="red2"></p>
<p class="line1"></p>
</div>
<ul class="floatl">
<li class="font16 padding-bottom">支付方式</li>
<li>貨到付款</li>
<li>商城卡支付</li>
<li>支付寶、網銀支付</li>
<li>優惠券抵用</li>
</ul>
</li>
<li>
<div class="floatl">
<p class="red3"></p>
<p class="line1"></p>
</div>
<ul class="floatl">
<li class="font16 padding-bottom">配送方式</li>
<li>閃電發貨</li>
<li>滿百包郵</li>
<li>配送範圍及時間</li>
<li>商品驗收及簽收</li>
<li>服務協議</li>
</ul>
</li>
<li>
<div class="floatl">
<p class="red3"></p>
<p class="line1"></p>
</div>
<ul class="floatl">
<li class="font16 padding-bottom">售後服務</li>
<li>退換貨協議</li>
<li>關於發票</li>
<li>退換貨流程</li>
<li>退換貨運費</li>
</ul>
</li>
<li>
<div class="floatl">
<p class="red3"></p>
<p class="line1"></p>
</div>
<ul class="floatl">
<li class="font16 padding-bottom">關於帳號</li>
<li>修改個人信息</li>
<li>修改密碼</li>
<li>找回密碼</li>
</ul>
</li>
<li>
<div class="floatl">
<p class="red3"></p>
<p class="line1"></p>
</div>
<ul class="floatl">
<li class="font16 padding-bottom">優惠活動</li>
<li>競拍須知</li>
<li>搶購須知</li>
</ul>
</li>
</ul>
<div class="clear"></div>
<div class="foot_line"></div>
<p align="center" class="padding-top">Copyright 2015-2020 Q- Walking Fashion E&S 漫步時尚廣場(QST教育)版權所有<Br/>
中國青島 高新區河東路8888號 青軟教育集團 諮詢熱線:400-658-0166 400-658-1022 </p>
<p align="center"><img src="images/foot_pic.jpg"></p>
<div class="clear"></div>
</div>
</footer>
</article>
</body>
</html>
detail.css:
@charset "utf-8";
body{
font-size:12px;
font-family:microsoft yahei;
margin:0;
color:#000;
}
*{
padding:0;
margin:0;
}
li,ul{
list-style:none;
}
a{
color:#000;
text-decoration:none;
}
a:hover{
color:#ce2626;
text-decoration:none;
}
img{
border:none;
}
.font14{
font-size:14px;
font-weight:700;
}
.font16{
font-size:16px;
font-weight:700;
}
.clear{
clear:both;
}
.floatl{
float:left;
}
.floatr{
float:right;
}
.main{
margin:10px auto;
width:1200px;
}
/*頭部*/
.top_bg{
border-bottom:1px solid #ccc;
font-size:12px;
font-family:"宋體";
line-height:30px;
background:#f7f7f7;
height:30px;
line-height:30px;
}
.top_content{
width:1200px;
margin:0 auto;
}
.logo{
margin:5px auto;
width:1200px;
}
.nav_bg{
background:#ce2626;
width:100%;
color:#fff;
}
.nav_content{
width:1200px;
margin:0 auto;
height:40px;
line-height:40px;
}
.menu_nav{
width:700px;
float:left;
margin-left:200px;
}
.menu_nav li{
font-size:16px;
font-weight:700;
color:#fff;
width:80px;
float:left;
text-align:center;
margin-right:15px;
}
.orange{
font-weight:700;
color:#f60;
}
.nav_active{
background:#b12121;
}
a.white{
color:#fff;text-decoration:none;
}
a.white:hover{
color:#ff0;
text-decoration:none;
}
.shopcart{
background:url(../images/shoppingcart.png) no-repeat;
width:16px;
height:16px;
display:inline-block;
float:left;
margin:5px 5px 0 0;
}
/*左側導航*/
.right_arrow{
background:url(../images/arrow_r.jpg) no-repeat;
width:20px;
height:20px;
display:inline-block;
float:right;
}
.menu{
width:220px;
float:left;
border:1px solid #e5e4e1;
}
.menu li{
float:left;
width:220px;
border-bottom:1px solid #e5e4e1;
height:33px;
line-height:33px;
background:#fafafa;
font-size:14px;
text-align:left;
}
.menu li .title{
height:33px;
background:#e5e4e1;
font-size:15px;
text-indent:20px;
text-align:left;
width:100%;
line-height:33px;
display:inline-block;
}
.red_dot{
font-size:25px;
margin-right:10px;
width:8px;
height:8px;
display:inline-block;
background:url(../images/red_dot.gif) no-repeat;
margin-left:10px;
}
/*中間部分*/
.middle{
float:left;
width:690px;
}
.pic_title{
background:#ff9c01;
line-height:35px;
font-size:14px;
text-indent:20px;
text-align:left;
width:680px;
float:left;
color:#fff;
margin:0 10px 10px;
}
/*右側公告*/
.right_nav{
width:280px;
border:1px solid #eee;
float:right;
}
.notice_title{
background:#eee;
line-height:35px;
font-size:14px;
text-indent:20px;
text-align:left;
}
/*foot*/
.foot{
width:100%;
background:#efefef;
height:310px;
margin-top:15px;
}
.foot_title{
background:#6a6665;
width:100%;
height:40px;
padding-top:8px;
}
.foot_pic{
margin:0 auto;
width:1200px;
}
.foot_pic li{
width:210px;
float:left;
text-align:center;
}
.padding-bottom{
padding-bottom:10px;
}
.padding-top{
padding-top:10px;
}
.foot_line{
border-bottom:1px solid #ccc;
font-size:12px;
margin-top:10px;
}
.line1{
background:url(../images/line1.jpg) no-repeat;
width:20px;
height:100px;
display:inline-block;
}
.red1{
background:url(../images/red1.jpg) no-repeat;
width:35px;
height:31px;
display:block;
}
.red2{
background:url(../images/red2.jpg) no-repeat;
width:35px;
height:31px;
display:block;
}
.red3{
background:url(../images/red3.jpg) no-repeat;
width:35px;
height:31px;
display:block;
}
.foot_list>li{
float:left;
width:170px;
}
.foot_list{
width:1100px;
margin:0 auto;
padding-top:20px;
}
.foot_list li ul{
padding-left:10px;
}
.pic_list3 li{
margin:5px;
float:left;
width:83px;
}
.pic_list3 li img{
border:1px solid #ccc;
}
.pic_list4{
margin-left:18px;
}
.pic_list4 li{
margin:5px;
float:left;
width:123px;
}
.pic_list4 li img{
border:1px solid #ccc;
}
.small_piclist li{
float:left;
margin-right:10px;
}
.small_piclist li img{
width:70px;
height:70px;
border:1px solid #ccc;
}
.left_pic{
margin-left:10px;
float:left;
}
.tab{
margin:10px;
border-bottom:1px solid #ccc;
height:35px;line-height:35px;
}
.tab li{
width:90px;
float:left;
font-size:14px;
text-align:center;
}
.tab_active{
border-top:3px solid red;
width:100px;
font-weight:700;
background:#f2f2f2;
height:33px;
border-right:1px solid #ccc;
border-left:1px solid #ccc;
}
.none{
display:none;
}
.particulars li{
display:inline;
float:left;
height:24px;
line-height:24px;
margin-right:20px;
overflow:hidden;
text-indent:5px;
text-overflow:ellipsis;
white-space:nowrap;
width:206px;
}
.price2{
font-size:12px;
font-weight:700;
color:red;
text-align:center;
}
.tab_content3{
width:670px;
margin:0 auto;
}
.tab_content3 table th{
height:30px;
background:#f2f2f2;
text-align:center;
}
.tab_content3 table td{
text-align:center;
height:40px;
border-bottom:1px dashed #ccc;
}
.right{
float:left;
}
article,footer,header,nav,section{
display:block;
}
.tab_content1 section{
text-align:center;
width:700px;
}
.img_border{
border:1px solid #ccc
margin-top:10px;
}
/* 放大鏡部分 */
.left_pic{
position:relative;
margin-left:10px;
float:left
}
#box{
position: relative;
margin-bottom: 10px;
width: 400px;
height: 400px;
}
#shade{
position: absolute;
top: 0px;
z-index: 1000;
width: 200px;
height: 200px;
filter: alpha(Opacity=70); /*IE設置透明度*/
-moz-opacity: 0.7; /*火狐設置透明度*/
opacity: 0.7; /*chrome設置透明度*/
background-color:#FFC;
display: none;
}
#canvas{
position: absolute;
left: 410px;
top: 0px;
display: none;
background-color:wheat;
display: none;
}
goodOperator.js:
// Created by guoqy
//切換商品展示區中的圖像
function changeGoodsImage(thumb) {
//設置當前縮略圖在商品展示區顯示對應的大圖
var showGoodsPicture = document.getElementById("showGoodsPicture");
showGoodsPicture.src = thumb.src;
//獲取商品縮略圖對應的li元素集合
var goodsList = document.getElementById("goodsList");
var items=goodsList.getElementsByTagName("li");
//遍歷li元素集合,將所有的圖像邊框顏色改爲默認樣式
for (var i = 0; i < items.length; i++) {
var thumbImages=items[i].getElementsByTagName("img");
thumbImages[0].style.borderColor = "";
}
//設置當前縮略圖爲選中狀態
thumb.style.borderColor = "red";
}
//Tab標籤的切換
function changeGoodsInfo(obj){
var currentSelect=0;
var goodsTabs=document.getElementById("goodsTabs");
//獲得商品的信息標籤(商品詳情、商品評價、成交記錄)
var goodsTitles=goodsTabs.getElementsByTagName("li");
for(var i=0;i<goodsTitles.length;i++){
goodsTitles[i].className="";
//判斷當前元素對應的位置
if(obj==goodsTitles[i]){
currentSelect=i;
}
}
//當前標籤處於激活狀態
obj.className="tab_active";
//設置標籤對應的內容部分
var middleDiv=document.getElementsByClassName("middle");
var tabCotents=middleDiv[0].getElementsByTagName("article");
for(var j=0;j<tabCotents.length;j++){
if(currentSelect==j){
tabCotents[j].className="tab_content"+(j);
}else{
tabCotents[j].className="none tab_content"+(j);
}
console.log(tabCotents[j].className);
}
}
/*放大鏡效果部分*/
//獲取元素的縱座標(相對於body)
function getTop(e){
var offset=e.offsetTop;
if (e.offsetParent!=null){
offset+=getTop(e.offsetParent);
}
return offset;
}
//獲取元素的橫座標(相對於body)
function getLeft(e){
var offset=e.offsetLeft;
if(e.offsetParent!=null){
offset+=getLeft(e.offsetParent);
}
return offset;
}
function zoomPicture() {
var box=document.getElementById("box");
var showGoodsPicture=document.getElementById("showGoodsPicture");
var canvas=document.getElementById("canvas");
var shade=document.getElementById("shade");
if(showGoodsPicture==null) {
return false;
}
//綁定鼠標移出所觸發的事件
box.onmouseout=function(){
shade.style.display="none";
canvas.style.display="none";
document.body.style.cursor="default";
};
//綁定鼠標移動所觸發的事件
box.onmousemove =function(ev){
//設定鼠標的樣式
document.body.style.cursor="move";
var box = document.getElementById("box");
var shadeX, shadeY;
//獲取box對象的左側到瀏覽器窗口左側的距離
var boxX=getLeft(box);
//獲取box對象的頂部到瀏覽器窗口頂部的距離
var boxY=getTop(box);
//計算陰影區域的左上角的x座標
shadeX=ev.pageX-boxX-100;
//計算陰影區域的左上角的y座標
shadeY=ev.pageY-boxY-100;
//防止陰影區域移到圖片之外
if(shadeX<0){
shadeX=0;
}
else if(shadeX>200){
shadeX=200;
}
if(shadeY<0){
shadeY=0;
}
else if(shadeY>200){
shadeY=200;
}
//使用Canvas繪製遮罩區域,並進行放大
var context=canvas.getContext("2d");
shade.style.display="block";
shade.style.left=shadeX+"px";
shade.style.top=shadeY+"px";
canvas.style.display="inline";
context.clearRect(0, 0, 400, 400);
var image=new Image();
image.src=showGoodsPicture.src;
context.drawImage(image, (shade.offsetLeft) * 2, (shade.offsetTop) * 2,
400, 400, 0, 0, 400, 400);
}
}
//在onload事件中調用zoomPicture()函數
window.onload=function(){
//默認第一個縮略圖爲選中狀態
var goodsList=document.getElementById("goodsList");
var thumb_images=goodsList.getElementsByTagName("li")[0]
.getElementsByTagName("img");
changeGoodsImage(thumb_images[0]);
zoomPicture();
};