需求:頁面顯示教師資訊清單,清單中每一條資料顯示圖檔滾動插件,每張圖檔的長寬及長寬比例各不相同。
前提條件:美工把靜态頁面寫好
HTML代碼:

@using Models;
@{
List<cms_content> teacherList = ViewData["teacherList"] as List<cms_content>; //春雨樹頻道
PagerModel pager = ViewData["pager"] as PagerModel;
}
<div class="teacherteam_box">
<h1>教師團隊</h1>
@foreach (cms_content teacher in teacherList)
{
<div class="teacher_box">
<div class="teacher_img fl">
<img src="~/@teacher.imgUrl" />
</div>
<div class="teacher_infor fl">
<h2>@teacher.title</h2>
<p>
@teacher.description
</p>
<div class="products_box">
<div class="products_pre">
<img src="~/Theme/images/left.png" />
</div>
<div class="products_next">
<img src="~/Theme/images/right.png" />
</div>
<div class="div-imgbox">
<ul>
@foreach (Tuple<string, string> item in teacher.imgList)
{
<li>
<img alt="@item.Item1" src="@item.Item2" style="height:221px;" />
</li>
}
</ul>
</div>
</div>
</div>
<div class="clear"></div>
</div>
}
<div class="page_box">
<span>共@(pager.totalRows)條資訊</span>
<a href="javascript:void(0);" onclick="teacherPage(this,1)">首頁</a>
<a href="javascript:void(0);" onclick="teacherPage(this,2)">上一頁</a>
<a href="javascript:void(0);"><i>@pager.page</i><b>/@pager.pageCount</b>頁</a>
<a href="javascript:void(0);" onclick="teacherPage(this,3)">下一頁</a>
<a href="javascript:void(0);" onclick="teacherPage(this,4)">尾頁</a>
</div>
</div>
View Code
JS代碼:

<script type="text/javascript">
var _lock = false;
$(function () {
teacherPage(null, null);
});//end $
//教師團隊
//flag=1首頁,2上一頁,3下一頁,4尾頁
function teacherPage(obj, flag) {
var totalPage = 1;
var page = 1;
if (obj) {
page = parseInt($(obj).parent().find("i").text());
totalPage = parseInt($(obj).parent().find("b").text().replace("/", ""));
}
if (flag == 1) { page = 1; }
if (flag == 2 && page > 1) { page = page - 1; }
if (flag == 3 && page < totalPage) { page = page + 1; }
if (flag == 4) { page = totalPage; }
$.ajax({
type: "GET",
url: "@Url.Content("~/")home/teachers?t=" + new Date().valueOf(),
data: { page: page },
success: function (data) {
$('#teachers').html(data);
sliderImg();
}
});
}
//滾動圖檔
function sliderImg() {
$(".products_next").click(function () {
if (_lock) return;
_lock = true;
var ul = $(this).parent().find("ul");
if (!canSlideLeft(ul)) { _lock = false; return; }
var liFirst;
var liArr = ul.find("li");
for (var i = 0; i < liArr.length; i++) {
if ($(liArr[i]).css("margin-left").indexOf("-") == -1) {
liFirst = $(liArr[i]);
break;
}
}
var margin = liFirst.width() + 15;
var speed = margin * 3;
liFirst.animate({
marginLeft: 0 - margin
}, 500);
setTimeout(function () {
_lock = false;
}, 500);
});
$(".products_pre").click(function () {
if (_lock) return;
_lock = true;
var ul = $(this).parent().find("ul");
if (!canSlideRight(ul)) { _lock = false; return; }
var liLast;
var liArr = ul.find("li");
for (var i = liArr.length - 1; i >= 0; i--) {
if ($(liArr[i]).css("margin-left") && $(liArr[i]).css("margin-left").indexOf("-") != -1) {
liLast = $(liArr[i]);
break;
}
}
var margin = liLast.width() + 15;
var speed = margin * 3;
liLast.animate({
marginLeft: 0
}, 500);
setTimeout(function () {
_lock = false;
}, 500);
});
}
//判斷圖檔是否可以向左滾動
function canSlideLeft(ul) {
var width = 0;
ul.find("li").each(function () {
var li = $(this);
if (!li.css("margin-left") || li.css("margin-left").indexOf("-") == -1) {
width = width + li.width() + 15;
}
});
if (width <= 710) {
return false;
}
return true;
}
//判斷圖檔是否可以向右滾動
function canSlideRight(ul) {
var bl = false;
ul.find("li").each(function () {
var li = $(this);
if (li.css("margin-left") && li.css("margin-left").indexOf("-") != -1) {
bl = bl || true;
}
});
return bl;
}
</script>
效果圖:
标簽:前端分頁、無重新整理分頁、js分頁