我正在尝试为我的页面设计一个滑块,我想知道是否有人知道如何创建从左到右的滑动div,反之亦然只有当按下相应的按钮(左和右)时?你能帮忙吗?
这是我正在尝试的代码。我可以让幻灯片工作,但到达终点时它仍然可以连续向右或向左滑动。我希望它一旦到达目的就动态停止,进一步点击时应该通过弹出提醒。
任何人都可以通过一些示例编码来指导我
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Sample Slide</title>
<style type="text/css">
.total
{
height:350px;
width:75%;
border:1px solid black;
margin-left:auto;
margin-right:auto;
margin-top:15%;
}
.slidepanel
{
border:1px solid purple;
width:100%;
height:100%;
overflow-x: scroll;
overflow-y: hidden;
}
.box-wrapper
{
width: 400%;
height: 90%;
overflow: hidden;
}
.block
{
/* position:absolute;
background-color:#abc;
left:50px;
width:90px;
height:90px;
margin:5px;*/
border:1px solid red;
width:24.9%;
height:98%;
float:left;
margin-left:auto;
margin-right:auto;
position:relative;
left:0px;
}
.block:nth-child(odd) {
background: cyan;
}
.block:nth-child(even) {
background: red;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="jquery.js"> </script>
<script type="text/javascript">
$(document).ready(function() {
$("#sright").click(function(){
$("#block1,#block2,#block3 ,#block4").animate({"left": "+=24.9%"}, "slow");
});
});
$(document).ready(function() {
$("#sleft").click(function(){
$("#block1,#block2,#block3 ,#block4").animate({"left": "-=24.9%"}, "slow");
});
});
</script>
</head>
<body>
<div class="total">
<div class="slidepanel">
<center><button id="sleft">«</button> <button id="sright">»</button></center>
<div class="box-wrapper">
<div class="block" id ="block1"></div>
<div class="block" id ="block2"></div>
<div class="block" id ="block3"></div>
<div class="block" id ="block4"></div>
</div>
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
[工作演示] [1]:http://jsfiddle.net/XJVYj/(使用上面的代码)
希望这会有所帮助,这与我先前对同一行中某些内容的回复不同:Stop .animate() when it reaches last div
无论如何,这个演示和代码将为您提供您想要的内容。
休息我会让代码说话;
请注意:我尝试使用class
属性而不是div元素的链接id
来简化。
Jquery代码
$(document).ready(function() {
var cur = 1;
var max = $(".box-wrapper div").length;
$("#sright").click(function(){
if (cur == 1 && cur < max)
return false;
cur--;
$(".block").animate({"left": "+=24.9%"}, "slow");
});
$("#sleft").click(function(){
if (cur+1 > max)
return false;
cur++;
$(".block").animate({"left": "-=24.9%"}, "slow");
});
});
答案 1 :(得分:0)
尝试使用像这样的px动画...
确保在动画时你的所有div都可用,然后尝试一个块div
$('#block1')。animate({“left”:“ - = 150px”},500);
计算可用图像的数量。
单击确保不超过最大图像,然后再次恢复到第一张图像,将第一张图像设置为0px。
类似地,检查第一张图像,然后当总图像宽度小于总滑块宽度时,则不允许将图像设置为右侧动画。
看看这有助于slider tut