スワイプ実装で変数d={x:undefined,thisX:undefined,startX:undefined,moveX:undefined};と書く意図が分からなかったので教えていただきたいです。
動作はできています。
html
1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 6<meta name="format-detection" content="telephone=no"> 7<title></title> 8<link rel="stylesheet" href="css/reset.css"> 9<link rel="stylesheet" href="css/base.css"> 10<link rel="stylesheet" href="css/style.css"> 11</head> 12<body> 13<div class="swipe-photo"> 14 <ul class="swipe-photo-container clearfix"> 15 <li class="swipe-photo-item"><img src="img/0.jpg" class="swipe-photo-thumbnail"></li> 16 <li class="swipe-photo-item"><img src="img/1.jpg" class="swipe-photo-thumbnail"></li> 17 <li class="swipe-photo-item"><img src="img/2.jpg" class="swipe-photo-thumbnail"></li> 18 <li class="swipe-photo-item"><img src="img/3.jpg" class="swipe-photo-thumbnail"></li> 19 <li class="swipe-photo-item"><img src="img/4.jpg" class="swipe-photo-thumbnail"></li> 20 <li class="swipe-photo-item"><img src="img/5.jpg" class="swipe-photo-thumbnail"></li> 21 </ul> 22</div> 23<script type="text/javascript" src="js/jquery.js"></script> 24<script type="text/javascript"> 25</script> 26</body> 27</html> 28
該当のコード
script
1$(function(){ 2 var b=$(".swipe-photo"), 3 f=b.find(".swipe-photo-container"), 4 j=b.find(".swipe-photo-item"), 5 e=j.find(".swipe-photo-thumbnail"), 6 h=e.width(), 7 a=j.length, 8 k=[], 9 d={x:undefined,thisX:undefined,startX:undefined,moveX:undefined}; 10 11 for(var c=0;c<=a;c++){ 12 k[c]=-c*h 13 } 14 15 $(".swipe-photo-container").width(h*a); 16 17 j.on({touchstart:function(i){ 18 d.thisX=parseInt($(".swipe-photo-container").css("left")); 19 d.startX=i.originalEvent.changedTouches[0].pageX-d.thisX 20 }, 21 22 touchmove:function(i){ 23 i.preventDefault(); 24 d.x=i.originalEvent.changedTouches[0].pageX; 25 26 if(d.x-d.startX>=0){ 27 d.moveX=0 28 }else{ 29 if(d.x-d.startX<=k[a-1]){ 30 d.moveX=k[a-1] 31 }else{ 32 d.moveX=d.x-d.startX 33 } 34 } 35 $(".swipe-photo-container").css({left:d.moveX}) 36 }, 37 38 touchend:function(n){ 39 var m=""; 40 41 for(var l=0;l<a;l++){ 42 if(k[l]+(h/2)>d.moveX&&d.moveX>=k[l+1]+(h/2)) 43 {m=l}} 44 $(".swipe-photo-container").animate({ 45 left:k[m] 46 },400)} 47 }) 48 });
共通CSS
css
1.swipe-photo { 2 position: relative; 3 width: 320px; 4 height: 240px; 5 margin: 0 auto; 6 overflow: hidden; 7} 8.swipe-photo-container { 9 position: absolute; 10 top: 0; 11 left: 0; 12} 13.swipe-photo-item { 14 float: left; 15} 16.swipe-photo-thumbnail { 17 width: 320px; 18 height: 240px; 19}
現時点では何がどうなっているのでしょうか。
今のままでは質問ではなく、ただの作業依頼です
ご指摘ありがとうございます。
修正いたしました。
回答1件
あなたの回答
tips
プレビュー