いつもお世話になっております。
今朝animate関数の使い方で質問させて頂いた者です。
その際、回答者様に頂いたサンプルを改変し、なんとか動く物は完成しました。
しかし問題点が残っています。
・カード⑤が表示状態で、進むボタンを押しカード①にループしない
・絶対位置の設定が出来ていないのか、ボタンを二度押しすると倍移動します。
上記二点を解決しようと調べプログラミングをしてみましたが、
思うような動きをしません。
解決方法をご享受頂けないでしょうか。
下記に今プログラムの条件と作成プログラムを再掲します。
[条件]ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
①、②、③、④、⑤のカードを重ねて配置する(初期状態では昇順に数字が並ぶ、一番上が①一番下は⑤)。
その下に「進むボタン」と「戻るボタン」を配置。
初期配置はこんな感じです
進むボタンを押すとカードが右にスライドし、下のカードが現れる。
(例えば、表示カードが①の状態で進むボタンを押すと②カードが表示される)
表示カードが⑤の状態で進むボタンを押すと①カードが表示される。
反対に、戻るボタンを押すと進むボタンと反対の動きをする。
表示カードが②の状態で、戻るボタンを押すと①カードが、画面の右から左スライドしながら②カードの上に表示される。
表示カードが①の状態で戻るボタンを押すと⑤カードが表示される。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
HTML
1<!DOCTYPE HTML> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>page</title> 6 <link rel="stylesheet" type="text/css" href="style.css" /> 7 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 8 <script type="text/javascript" src="page.js"></script> 9 </head> 10 <body> 11 <ul> 12 <li id="stage1" class="on"><img src="number1.png" alt="number1" /></li> 13 <li id="stage2"><img src="number2.png" alt="number2" /></li> 14 <li id="stage3"><img src="number3.png" alt="number3" /></li> 15 <li id="stage4"><img src="number4.png" alt="number4" /></li> 16 <li id="stage5"><img src="number5.png" alt="number5" /></li> 17 </ul> 18 <div class="button"> 19 <input type="button" value="進む" id="nextBtn"> 20 <input type="button" value="戻る" id="prevBtn"> 21 </div> 22 </body> 23</html>
CSS
1@charset "UTF-8"; 2html,body{ 3 width:100%; 4 height:100%; 5} 6 7/* #container 8--------------------------- */ 9ul{ 10 /* 11 top: 0; 12 left: 0; 13 width: 100%; 14 position: absolute; 15 z-index: 1; 16 */ 17 position:relative; 18 width:100%; 19 height:100%; 20 overflow:hidden; 21} 22li{ 23 list-style-type:none; 24 position:absolute; 25 top:0px; 26 left:600px; 27 width:100px; 28 height:100px; 29} 30#stage1{ 31 z-index:5; 32} 33#stage2{ 34 z-index:4; 35} 36#stage3{ 37 z-index:3; 38} 39#stage4{ 40 z-index:2; 41} 42#stage5{ 43 z-index:1; 44} 45.button{ 46 position:absolute; 47 top:400px; 48} 49#nextBtn{ 50 width:70px; 51 height:30px; 52 margin-right:100px; 53 margin-left:600px; 54 cursor:pointer; 55} 56#prevBtn{ 57 width:70px; 58 height:30px; 59 cursor:pointer; 60}
javascript
1$(function(){ 2 $("#nextBtn").on("click", function(){ 3 if($("ul li.on").next().length === 0){ 4 return false; 5 } 6 $("ul li.on").animate({ 7 left:"+=700px" 8 }, 9 { 10 duration: "slow", 11 easing: "linear", 12 complete: function(){ 13 //alert($(this)); 14 $(this).removeClass("on").next().addClass("on"); 15 } 16 }); 17 }); 18 19 $("#prevBtn").on("click", function(){ 20 if($("ul li.on").prev().length === 0){ 21 return false; 22 } 23 $("ul li.on").prev().animate({ 24 left:"-=700px" 25 }, 26 { 27 duration: "slow", 28 easing: "linear", 29 complete: function(){ 30 $(this).addClass("on").next().removeClass("on"); 31 } 32 }); 33 }); 34});
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/29 09:42