
var a=0;
var b=200;
setInterval(function(){
a+=b;
document.getElementById("s3").style.left=a+"px";
a++;
if(a=="300"){
} a=0;
},2000);
$(function(){
$("#m1").click(function(){
$("#s3").css("left","30px")
});
});
$(function(){
$("#m2").click(function(){
$("#s3").css("left","100px")
});
});
$(function(){
$("#m3").click(function(){
$("#s3").css("left","200px")
});
});
<div id="wrap">
<div id="s1">
<div id="s3">
<ul>
<li><img src="rtp/05.jpg" width="200px" height="200px"></li>
<li><img src="rtp/7.jpg" width="200px" height="200px"></li>
<li><img src="rtp/9.jpg" width="200px" height="200px"></li>
</ul>
</div></div>
<div id="s2">
<p><img src="rtp/05.jpg" width="50px" height="50px" id="m1"></p>
<p><img src="rtp/7.jpg" width="50px" height="50px" id="m2"></p>
<p><img src="rtp/9.jpg" width="50px" height="50px" id="m3"></p>
</div></div>
</body>
</html>
2秒ごとに画像をずらしある一定の数値で0位置に戻したい。
どうしたらいいでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ANo1です。
反応がないようなので、ご覧になっているのかわかりませんが・・・
なさりたいことがよくわからないので、最小限で、一応動作するプリミティブなものを作ってみました。ご参考まで。
どうなさりたいのかわからないので、勝手に以下を想定
・スライドして切り替わるタイプのスライドショー
・自動でスタートし、循環して継続表示する
・サムネイルをクリックすると、それに対応する画像に瞬時切り替えてストップ
(以後は、クリックすれば切り替わる機能になる)
・画像数はHTMLの変更をすることで、自由に増減可能
※ 「一定の数値で0位置に戻す」については、意味がわからないので何もしていません。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>Slider Sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
#slider * { margin:0; padding:0; list-style-type:none; }
#slider { position:relative; overflow:hidden; margin-bottom:0.5em; }
#slider ul { position:absolute; top:0; left:0; }
#slider ul li { float: left; }
#slider, #slider img { width:200px; height:200px; }
#thumbnail img { width:50px; height:50px; cursor:pointer; }
</style>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1");</script>
<script type="text/javascript">
$(function(){
var duration = 500, pause = 2000;
var box = $("#slider"), panel = $(">ul", box), slides = $(">li", panel);
panel.append(slides.eq(0).clone(true));
var activeslide = 0, slides = $(">li", panel), width = slides.width();
panel.width(width * slides.length);
var timer = setInterval(function(){
if(++activeslide >= slides.length){ panel.css({left:0}), activeslide = 1; }
panel.animate({ left: -activeslide * width }, duration);
}, duration + pause);
$("#thumbnail").on("click", "img", function(evt){
clearInterval(timer);
panel.stop().css({ left: -$(evt.target).index() * width });
});
});
</script>
</head>
<body>
<div id="slider">
<ul>
<li><img src="A.jpg" alt=""></li>
<li><img src="B.jpg" alt=""></li>
<li><img src="C.jpg" alt=""></li>
<li><img src="D.jpg" alt=""></li>
</ul>
</div>
<div id="thumbnail">
<img src="A.jpg" alt="">
<img src="B.jpg" alt="">
<img src="C.jpg" alt="">
<img src="D.jpg" alt="">
</div>
</body>
</html>
※ 一つの方法としての例を示すための原理的な単純なものですが、実際は、一般化してみたり、複数のスライダーを動作させたり、スタート、ストップが自由にできるようにするなどのようにして使うことになると思います。
No.1
- 回答日時:
こんにちは。
CSSが不明なので、どのような仕組みになさろうとしているのかよくわかりませんが・・・
・同じ画像が2セットあるけれど、#s2の方はサムネイルのつもりでしょうか?
・現状はあまり動作していないと思いますが、表示が順に切り替わる
タイプでしょうか? それともスライド(アニメーション)して替る
タイプなのでしょうか?
・サムネイルをクリックした時には、いきなり切り替わる予定なのかな?
・「一定の数値で0位置に戻す」って何の数値でどの位置に戻すのだろう?
一度に全部を作ろうとせずに、
1)自動スライド(切り替わるのか又はアニメーション)だけを作る
2)サムネイルの動作を付け加える
3)「一定の数値で0位置に戻す」機能を付け加える
といった順に作っていった方が、少し回り道になるかも知れませんが、結果的に早そうな気がします。
特に1)については、画像を切り替えるだけの場合はそのまま切り替えるだけで良いですが、スライド(アニメーション)させて、かつ循環(カルーセル)させるような場合には、画面に同時に表示される画像数(=止まった時に表示される数+1)だけ両端に揃っていないと空白が表示されることになります。
一方で、循環させない場合には、端部にきたことを判定して移動しないようにする処理が必要になりますね。
ついでですが…
#m1などの要素の個別idを利用しているようですが、それですと画像数が増減したりするごとにスクリプトも修正しなければならなってしまいます。
できるだけ、そのようなことのない作り方をなさった方が便利になると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Slick.jsのオプションrtlについて
-
アコーディオンメニューが開い...
-
MAX関数を使ってからLEFT JOIN...
-
jQueryでクリックされた要素のi...
-
Javascriptで指定した日付と時...
-
jspでcssが読み込めない
-
libjpegライブラリの使い方につ...
-
JQuery UIで、表示したタブの中...
-
【CSS】floatで左右に並べた...
-
[JavaScript]IE11にてフリック...
-
clear: bothの事で質問です。
-
オンマウスで流れる文字
-
外部javascriptの重複を防ぐには
-
jQueryの.text()関数でiframe
-
getElementByIdの戻り値がnull...
-
javascriptテキストBOX色を元に...
-
交互に入れ替わる画像を複数配置
-
クリックすると画像を表示するタグ
-
【初心者】UWSCでjavascriptで...
-
jsファイルのエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Slick.jsのオプションrtlについて
-
【jQuery】2分割レイアウトで、...
-
bxSliderのランダム表示について
-
javascripteの件で、質問です。
-
[jQuery]bxSlider 一番最後と...
-
【iOS及びAndroid】リンク画像...
-
jqueryで画像をスライドさせる方法
-
CSSでマウスオーバーした画像を...
-
アコーディオンメニューが開い...
-
キャラクターがぴょこんと飛び...
-
liの数によってulの横幅を動的...
-
数ある中からランダムで抽出し...
-
ローカルでは問題なく動くがサ...
-
qtipの使い方について
-
jQueryを使ってある画像を別の...
-
javascript src書き換え
-
順番にクラスをつけていく方法
-
複数のJavascript の組込み方に...
-
スライドショー「Skitter」をカ...
-
横並びの画像を3枚時間差でフェ...
おすすめ情報