利用jQuery簡單實現(xiàn)產(chǎn)品展示圖片左右滾動功能(示例代碼)
最近要做一個產(chǎn)品展示功能,由于產(chǎn)品比較多,一屏展示不完,所以想要做一個通過點擊進行翻頁的效果,在網(wǎng)上找了幾個都不大好用,最后只能自己動手寫了。
效果如下所示:
原理比較簡單:將要滾動顯示的區(qū)域的CSS的override設為hidden,寬度設成一個比較大的值,如4000px,然后每次點擊上一頁或下一頁的按鈕時,計算當前頁數(shù),如果已經(jīng)到了最后一頁,則回到第一頁,滾動是通過控制div的left屬性實現(xiàn)的,需要兩個div,外面的div的position設為retative,里面的DIV的position設為absolute。
主要代碼如下:
HTML:
<div id="product">
<h2><span class="arrow">arrow</span>產(chǎn)品展示</h2>
<span class="prev"></span>
<div id="content">
<div id="content_list">
<dl>
<dt><img src="images/product1.jpg"/></dt>
<dd>數(shù)據(jù)采集移動終端</dd>
</dl>
<dl>
<dt><img src="images/product2.jpg"/></dt>
<dd>數(shù)據(jù)采集移動終端</dd>
</dl>
<dl>
<dt><img src="images/product3.jpg"/></dt>
<dd>數(shù)據(jù)采集移動終端</dd>
</dl>
<dl>
<dt><img src="images/product3.jpg"/></dt>
<dd>數(shù)據(jù)采集移動終端</dd>
</dl>
<dl>
<dt><img src="images/product1.jpg"/></dt>
<dd>數(shù)據(jù)采集移動終端1</dd>
</dl>
<dl>
<dt><img src="images/product1.jpg"/></dt>
<dd>數(shù)據(jù)采集移動終端1</dd>
</dl>
<dl>
<dt><img src="images/product1.jpg"/></dt>
<dd>數(shù)據(jù)采集移動終端1</dd>
</dl>
</div>
</div>
<span class="next"></span>
</div>
CSS:
#product {
width:720px;
height:200px;
border:1px solid #ccc;
margin:0 5px 5px 0;
float:left;
}
#product div#content {
position:relative;
width:690px;
height:160px;
display:inline-block;
overflow:hidden;
float:left;
}
#product div#content_list {
position:absolute;
width:4000px;
}
#product dl{
width:160px;
height:150px;
float:left;
margin:10px 4px;
padding:2px 2px;
}
#product dl:hover {
border:1px solid #333;
background:#ccc;
}
#product dl dt {
}
#product dl dt img {
width:160px;
height:120px;
border:none;
}
#product dl dd {
text-align:center;
}
#product span.prev{
cursor:pointer;
display:inline-block;
width:15px;
height:150px;
background:url(../images/arrow_l.gif) no-repeat left center;
float:left;
}
#product span.next{
cursor:pointer;
display:inline-block;
width:15px;
height:150px;
background:url(../images/arrow_r.gif) no-repeat left center;
float:right;
}
js代碼
$(function(){
var page = 1;
var i = 4; //每版放4個圖片
//向后 按鈕
$("span.next").click(function(){ //綁定click事件
var content = $("div#content");
var content_list = $("div#content_list");
var v_width = content.width();
var len = content.find("dl").length;
var page_count = Math.ceil(len / i) ; //只要不是整數(shù),就往大的方向取最小的整數(shù)
if( !content_list.is(":animated") ){ //判斷“內容展示區(qū)域”是否正在處于動畫
if( page == page_count ){ //已經(jīng)到最后一個版面了,如果再向后,必須跳轉到第一個版面。
content_list.animate({ left : '0px'}, "slow"); //通過改變left值,跳轉到第一個版面
page = 1;
}else{
content_list.animate({ left : '-='+v_width }, "slow"); //通過改變left值,達到每次換一個版面
page++;
}
}
});
//往前 按鈕
$("span.prev").click(function(){
var content = $("div#content");
var content_list = $("div#content_list");
var v_width = content.width();
var len = content.find("dl").length;
var page_count = Math.ceil(len / i) ; //只要不是整數(shù),就往大的方向取最小的整數(shù)
if(!content_list.is(":animated") ){ //判斷“內容展示區(qū)域”是否正在處于動畫
if(page == 1 ){ //已經(jīng)到第一個版面了,如果再向前,必須跳轉到最后一個版面。
content_list.animate({ left : '-='+v_width*(page_count-1) }, "slow");
page = page_count;
}else{
content_list.animate({ left : '+='+v_width }, "slow");
page--;
}
}
});
});
相關文章
Laravel admin實現(xiàn)消息提醒、播放音頻功能
這篇文章主要介紹了Laravel admin實現(xiàn)消息提醒、播放音頻功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07jquery.artwl.thickbox.js 一個非常簡單好用的jQuery彈出層插件
jquery.artwl.thickbox.js 一個非常簡單好用的jQuery彈出層插件,需要的朋友可以參考下2012-03-03jQuery 淡出一個圖像到另一個圖像的實現(xiàn)代碼
這篇文章主要介紹了jquery的hover事件實現(xiàn)兩個圖片的淡出切換效果,需要的朋友可以參考下2013-06-06jquery 獲取select數(shù)組與name數(shù)組長度的實現(xiàn)代碼
下面小編就為大家?guī)硪黄猨query 獲取select數(shù)組與name數(shù)組長度的實現(xiàn)代碼。小編覺得挺不錯的, 現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06javascript trim函數(shù)在IE下不能用的解決方法
trim 函數(shù)在firefox 下面使用沒有問題,但是在IE下就報錯,下面是可行的解決方法,大家可以看看2014-09-09