極簡的js點擊組圖轉場效果

來源:互聯網
上載者:User

標籤:osi   ret   text   pointer   頁面   http   網上   java   exp   

程式員進行前端開發時,時常要用到點擊切換組圖的動畫效果,網上確實有很多此類外掛程式,但是都很麻煩,烏糟糟無數代碼,有那個看的時間,自己都能把功能寫完了。在這裡我提供一段極簡的js點擊組圖轉場效果代碼,包含一個html檔案,一個css檔案,一個js檔案,一個jquery.js檔案,以及一張圖片。

index.html

<html>
<head>
<title>js點擊組圖左右滑動</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="jquery.min.js"></script><!-- 需要一個jquery庫 -->
<script type="text/javascript" src="js.js"></script>
</head>
<body>
<div class="main"><!-- 註:複製代碼後,只需隨意找一張圖片,據下方img標籤中的名字,對應修改一片名稱,即可看到動畫效果 -->
<div class="main_in"><!-- 此標籤必須overflow:hidden,才能實現滑動的效果 -->
<ul id="main_ul"><!-- 此標籤必須relative,才允許進行滑動 -->

<li class="main_in_li" id="main_in_li_id"><img src="chanping1.jpg" width="280" height="500"></li><!-- 根據此id位置,判斷ul標籤left像素的值 -->
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
<li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>

</ul>
</div>
<div class="main_change">
<div id="prev" onclick="slideprev()"><img src="images/prev.png"></div>
<div id="next" onclick="slidenext()"><img src="images/next.png"></div>
</div>
</div>
</body>
</html>

樣式表:

css.css

*{margin: 0px; padding: 0px;}
.main{width: 1180px; margin:auto;}
.main_in{overflow: hidden;}
.main_in ul{display: block; width:5000px; height: 500px; overflow:hidden;position: relative;}
.main_in_li{display: block; margin-right: 20px; float: left;}
.main_change{width: 1312px; margin: 0 auto; position: relative; top: -250px; left:-66px;}
#next{width: 40px; height: 75px; cursor: pointer; position: absolute; right: 0px; background: #999;}
#prev{width: 40px; height: 75px; cursor: pointer;position: absolute; left: 0px; background: #999;}

js檔案:

js.js

//根據class擷取元素
function getByClass(sClass){
var aResult=[];
var aEle=document.getElementsByTagName(‘*‘);
var re=new RegExp("\\b" + sClass + "\\b","g");
for(var i=0;i<aEle.length;i++){
if(aEle[i].className.search(re) != -1){
aResult.push(aEle[i]);
}
}
return aResult;
};

//下一個
function slidenext(){
var i=0;
var n;
for(i;i<getByClass("main_in_li").length;i++){//根據class擷取li標籤個數
if(getByClass("main_in_li")[i].id=="main_in_li_id"){//根據id判斷li標籤在數組中的位置,得到i的值,從而得出ul標籤left像素的值
if(i<getByClass("main_in_li").length-4){//4代表容器中顯示的<li>標籤的個數,你想在頁面上顯示幾個<li>方塊,除了在樣式表中需要修改寬度以外,也需要修改此處"4"這個值。
n=i+1;
$("#main_ul").animate({left:"-"+300*n},800);
getByClass("main_in_li")[i].id="";
}
}
}
getByClass("main_in_li")[n].id="main_in_li_id";
}

//上一個,邏輯同上函數
function slideprev(){
var i=0;
var n;
for(i;i<getByClass("main_in_li").length;i++){
if(getByClass("main_in_li")[i].id=="main_in_li_id"){
if(i>0){
n=i-1;
$("#main_ul").animate({left:"-"+300*n},800);
getByClass("main_in_li")[i].id="";
}
}
}
getByClass("main_in_li")[n].id="main_in_li_id";
}

本段js代碼基本採用原生的js寫成,不過也跟jquery的寫法差不多,邏輯是一樣的。

jquery.js檔案大家自己找吧,隨便那個都可以。圖片大家根據目錄隨便找一張放上去就行。

這一段代碼,其實不單單只是用於圖片切換,實質上切換的是<li>標籤,你想放文字等待其他東西,只管往<li>標籤裡面丟就行了。

極簡的js點擊組圖轉場效果

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.