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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

3475閲覧

draggableを使って背景を決められた範囲内で動かしたい2

k499778

総合スコア599

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/02/11 14:24

「draggableを使って背景を決められた範囲内で動かしたい」の続き

現在jQueryUIのdraggable,HTML,jQueryを使って背景画像を動かし、
なおかつ動かせる範囲が画像の幅限界までというアプリを作っています。

質問があるのですが、
結論から言うと、

背景をドラッグしているときに見える後ろの白い部分を見えないようにすることはできるでしょうか?

現在回答者様のご協力もあり完成しているコードが以下です。

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 6<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.19/jquery-ui.min.js"></script> 7<style> 8.container{ 9 width: 1500px; 10 height: 1200px; 11 overflow:hidden; 12} 13 14.backBox{ 15 width: 2000px; 16 height: 2000px; 17 background: aqua; 18} 19 20.box{ 21 width: 150px; 22 height: 150px; 23 background-color: #EFE; 24 border: solid 1px #CCC; 25 position: absolute; 26} 27 28#b1{ 29 top: 10px; 30 left: 20px; 31} 32#b2{ 33 top: 150px; 34 left: 200px; 35} 36#b3{ 37 top: 300px; 38 left: 340px; 39} 40#b4{ 41 top: 400px; 42 left: 470px; 43} 44#b5{ 45 top: 600px; 46 left: 700px; 47} 48#b6{ 49 top: 800px; 50 left: 850px; 51} 52 53</style> 54</head> 55<body style="margin: 0px"> 56<div class="container"> 57 <div id="a1" class="backBox"> 58 <div id="b1" class="box">b1</div> 59 <div id="b2" class="box">b2</div> 60 <div id="b3" class="box">b3</div> 61 <div id="b4" class="box">b4</div> 62 <div id="b5" class="box">b5</div> 63 <div id="b6" class="box">b6</div> 64 </div> 65</div> 66<script> 67 $("#a1").draggable({ 68 drag: function(event, ui) { 69 var t = $(this); 70 var tw = t.width(); 71 var th = t.height(); 72 73 var c = t.parent(); 74 var cw = c.width(); 75 var ch = c.height(); 76 77 if(ui.position.left < cw - tw) 78 { 79 ui.position.left = cw - tw; 80 } 81 82 if(ui.position.left > 0) 83 { 84 ui.position.left = 0; 85 } 86 87 if(ui.position.top < ch - th) 88 { 89 ui.position.top = ch - th; 90 } 91 92 if(ui.position.top > 0) 93 { 94 ui.position.top = 0; 95 } 96 } 97 }); 98</script> 99</body> 100</html>

これでほぼ思い通りの出来にはなりました。
ただイメージとしてはGooglemapの背景の動きをイメージしているので
横に最大限ドラッグし続けているときに見える白い部分が見えないようにしたいのです。

イメージ説明

動きとしては以下のサイトが理想です。これをdraggableでしたいと思っています。
以下だと背景の上に要素がある場合その要素のポジションを全て再設定しなければならないからです。
http://ponk.jp/jquery/basic/image_move

もし何かいい方法が分かる方がいらっしゃればよろしくお願いします。
できればdraggableのままで、もし無理そうなら他の方法をご提示頂けると幸いです。

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

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

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

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

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

K_S_

2016/02/11 14:39 編集

OSとブラウザ環境を教えてください。 再現できないとなんとも言えないので。
k499778

2016/02/11 14:43

MacOS Yosemite10.10.5 Chrome48.0.2564.109 (64-bit)です。 そしてKondoSatoruさんすいません。 私は勘違いをしていたかもしれません。。。
k499778

2016/02/11 14:44

自己回答を書きます
guest

回答2

0

自己解決

申し訳ありません。
実際に自分のMacとChromeの環境で試していたときの動かし方に誤りがあったかもしれません。

ドラッグをする際に最初トラックパッドを3本指で操作していたのですが、
なぜか限界までドラッグし終えたときに2本指で再ドラッグをし、
そのときに白い部分が見えていました。

ただ2本指の動きというのは要素をドラッグする動きではなく、
スクロールの動きであり、
この最後までいったあとに跳ね返るような動きはMac特有のものであったりするため
気にしなくていいのかもしれません。

この質問に対して協力してくださった皆様、特に最後まで付き合ってくださったKondoSatoruさん
すいませんでした。
そして解決することができたことに皆様に感謝いたします。

投稿2016/02/11 14:51

k499778

総合スコア599

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

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

K_S_

2016/02/11 15:06

なるほど!答えがわかってスッキリしました。
k499778

2016/02/11 15:08

KondoSatoruさん 長い間付き合ってもらいありがとうございました。 こんな結末で申し訳ありません。 ただ多くやりとりしていただいたおかげで気づくことができたので本当に感謝しています。 ありがとうございました。
guest

0

ブラウザのデフォルトスタイルシートが当たっているだけかもしれません。
リセットCSSを試してみてはいかがでしょうか?

投稿2016/02/11 14:27

yamato_hikawa

総合スコア2092

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

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

k499778

2016/02/11 14:36

yamato_hikawaさん 回答ありがとうございます。 bodyタグでmargin:0px;にしているのと、 また動きとしてドラッグしているときだけ出て、やめると出ないので draggableの性質上だと思います。 なのでリセットCSSの影響ではないと思いました。 一応試してはみたのですが、やはりそれでもドラッグしたときの白い部分は出てしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問