我使用JQuery编写了一个自定义滑块来显示图像的缩略图。我有一个滑块移动的外部div。但是当幻灯片结束时,我不想再进一步滑动(左右两侧)。我怎么能这样做?
这是我的代码 - 您可以将其保存为html并运行它 -
<html>
<head>
<title>Content Slider</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
});
function left() {
$('#inner').animate({
'marginLeft': "-=200px"
}, 1000, function () {
});
}
function right() {
if ($('#inner').css('marginLeft') != "0px" && $('#inner').css('marginLeft') != "auto") {
$('#inner').animate({
'marginLeft': "+=200px"
}, 1000, function () {
});
}
}
</script>
</head>
<body>
<div style="width: 800px; height: 200px; border: 3px solid #DADADA; overflow: hidden;
padding: 5px;">
<div id="inner" style="height: 190px; overflow: hidden;">
<table cellpadding="0" cellspacing="5" style="width: 100%; height: 190px;">
<tr>
<td valign="middle" align="center">
<div style="width: 200px; height: 100px; background-color: #DADADA">
</div>
</td>
<td valign="middle" align="center">
<div style="width: 200px; height: 100px; background-color: #DADADA">
</div>
</td>
<td valign="middle" align="center">
<div style="width: 200px; height: 100px; background-color: #DADADA">
</div>
</td>
<td valign="middle" align="center">
<div style="width: 200px; height: 100px; background-color: #DADADA">
</div>
</td>
<td valign="middle" align="center">
<div style="width: 200px; height: 100px; background-color: #DADADA">
</div>
</td>
<td valign="middle" align="center">
<div style="width: 200px; height: 100px; background-color: #DADADA">
</div>
</td>
<td valign="middle" align="center">
<div style="width: 200px; height: 100px; background-color: #DADADA">
</div>
</td>
<td valign="middle" align="center">
<div style="width: 200px; height: 100px; background-color: #DADADA">
</div>
</td>
</tr>
</table>
</div>
</div>
<table style="width: 800px">
<tr>
<td align="left">
<a href="Javascript:left();"><<</a>
</td>
<td align="right">
<a href="Javascript:right();">>></a>
</td>
</tr>
</table>
</body>
</html>
有什么想法吗?
答案 0 :(得分:1)
我建议检查最初未显示的图像总数。在你的情况下,它是=总计 - 4(最初加载页面时显示) - 将其称为X.然后使用某种计数器来查看剩余边距不会减少超过200 * X.
代码实施:
var x=4; //current total is 8 (-4 gives x) function left() { if( parseInt($('#inner').css('marginLeft'))>-x*200){ // 200 is the size of each image $('#inner').animate({ 'marginLeft': "-=200px" }, 1000, function () { }); } }