質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1637閲覧

続[Jquery]animate関数がうまく制御出来ない

seint.k

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/09/29 07:29

いつもお世話になっております。
今朝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});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

html

1<!DOCTYPE HTML> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>page</title> 6 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 7 <style type="text/css"> 8 html,body{ 9 width:100%; 10 height:100%; 11 } 12 13 /* #container 14 --------------------------- */ 15 #container { 16 width:200px; 17 margin: 0 auto; 18 } 19 ul { 20 height: 200px; 21 list-style: none; 22 padding: 0; 23 white-space: nowrap; 24 overflow: hidden; 25 } 26 li { 27 display: inline; 28 } 29 </style> 30 </head> 31 <body> 32 <div id="container"> 33 <ul class="slideshow"> 34 <li> 35 <img src="//dummyimage.com/200x200/eeeeee/000000&text=1" width="200" /> 36 </li> 37 <li> 38 <img src="//dummyimage.com/200x200/eeeeee/000000&text=2" width="200" /> 39 </li> 40 <li> 41 <img src="//dummyimage.com/200x200/eeeeee/000000&text=3" width="200" /> 42 </li> 43 <li> 44 <img src="//dummyimage.com/200x200/eeeeee/000000&text=4" width="200" /> 45 </li> 46 <li> 47 <img src="//dummyimage.com/200x200/eeeeee/000000&text=5" width="200" /> 48 </li> 49 </ul> 50 <div class="button"> 51 <input type="button" value="戻る" id="prevBtn"> 52 <input type="button" value="進む" id="nextBtn"> 53 </div> 54 </div> 55 <script type="text/javascript"> 56 $(function () { 57 58 function next() { 59 $('.slideshow > li:first').animate({ 60 marginLeft: -200 61 }, 200, function () { 62 $(this).appendTo('.slideshow').css({ 63 marginLeft: 0 64 }); 65 }); 66 } 67 68 function prev() { 69 $('.slideshow > li:last').prependTo('.slideshow').css({ 70 marginLeft: -200 71 }).animate({ 72 marginLeft: 0 73 }, 200); 74 } 75 76 $('#nextBtn,#prevBtn').on('click', function () { 77 switch (this.id) { 78 case 'nextBtn': 79 next(); 80 break; 81 case 'prevBtn': 82 prev(); 83 break; 84 } 85 }); 86 }); 87 </script> 88 </body> 89</html>

投稿2016/09/29 08:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

seint.k

2016/09/29 09:42

append,prependを使い動的にスライドしたカードを下に移動させたら良かったんですね! サンプルまで頂きありがとうございます。しっかり使わせてもらいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問