前提・実現したいこと
例えばですが、一枚画像が表示されているとします。
その画像を隣の枠にドラッグ&ドロップしたとします。
そうしたら、表示されていた画像を消し、次の画像をサーバーから読み込んで表示する、
というのを繰り返し行いたいと考えています。
この、次の画像を読み込んで表示させるところをどのように実装すべきか悩んでいます。
参考
https://www.youtube.com/watch?v=rfNm-Di6oaA
https://www.html5rocks.com/ja/tutorials/dnd/basics/
こちらはTinderですが、この場合だと5枚程度読み込んで終わりになっているのでちょっと違います。
一気に複数枚読み込むのではなく、1枚ずつ読み込みたいです。
画面遷移せずに読み込みたいのですがそれはできないのでしょうか?
できないのでしたらやはり複数枚読み込んでおいて、まだ読み込みたい時は、ボタンなどを配置して置くという方法
しかないのでしょうか?
追記
この画像のようにdstを複数設置する場合を考えた時に同じidが複数存在してしまうのでうまく画像が切り替わりませんでした。
しかし、以下のようにするとうまくいきます。
HTML
1<div class="dragdrop"> 2<div id="dropArea1" droppable> 3 ここに画像をドロップしてください 4</div> 5<img id="dispImg" draggable src="http://robohash.org/1.png?size=200x200"></img> 6<div id="dropArea2" droppable> 7 ここに画像をドロップしてください 8</div> 9</div>
JavaScript
1let next = 1; 2dispImg.ondragstart = evt => { 3 evt.dataTransfer.setData('text', dragImg.src); 4} 5dropArea1.ondragover = evt => evt.preventDefault(); 6dropArea1.ondrop = evt => { 7 dstImg.src = evt.dataTransfer.getData('text'); 8 next++; 9 dispImg.src = `http://robohash.org/${next}.png?size=200x200`; 10}
dstが2個とかなら書いても良いとは思いますが、想定では9個とかになるのでコードがスマートではありません。
どうにかして綺麗に書くことはできないでしょうか?
ちなみにどのdstかによってdbの処理が変わってくるのでどのdstか分かって置く必要があります。
素直に書いた方が良いのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/02 05:07
2018/03/02 05:12
2018/03/02 05:29
2018/03/02 06:29
2018/03/02 07:42