2

私は自分のページのスライダーをデザインしようとしていますが、左から右へ、またはその逆に対応するボタン(左と右)が押された場合にのみスライドする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">&laquo;</button> <button id="sright">&raquo;</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>
4

2 に答える 2

1

[動作デモ][1] : http://jsfiddle.net/XJVYj/ (上記のコードを使用)

これが役立つことを願っています。これは、同じ行にある何かの以前の返信とは異なります。最後の div に到達したら .animate() を停止します

とにかく、このデモとコードはまさにあなたが探しているものを提供します.

残りはコードに任せます。

注意してください: div 要素classの連鎖の代わりに属性を使用して、単純化しようとしました。id

Jクエリコード

$(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");
});
});​
于 2012-05-26T06:57:43.567 に答える
0

このようにpxでアニメーション化してみてください...

アニメーションの時点ですべての div が使用可能であることを確認してから、1 つのブロック div に対してこれを試してください。

$('#block1').animate({"left": "-=150px"}, 500);

利用可能な画像の数を数えます。

クリックすると、最大画像を超えていないことを確認し、再び最初の画像に戻り、最初の画像を 0px にアニメーション化します。

同様に、最初の画像を確認し、画像の幅の合計がスライダーの幅の合計よりも小さい場合は、画像を右側にアニメーション化することを許可しません。

これがスライダーのtutに役立つかどうかを確認してください

于 2012-05-26T06:25:17.450 に答える