CSSのみを使用して、IDが「drag_me」のdivタグを、左から300ピクセル、上から460ピクセルの長さまでドラッグできるようにします。
サイズ変更もしたいです。ここでも上記と同じ条件です。つまり、Javascriptやjqueryはありません。
誰かがこれに対する解決策を提案できますか...
よろしくお願いします
これは、JavaScriptなしで実行できる最善の方法です。
[draggable=true] {
cursor: move;
}
.resizable {
overflow: scroll;
resize: both;
max-width: 300px;
max-height: 460px;
border: 1px solid black;
min-width: 50px;
min-height: 50px;
background-color: skyblue;
}
<div draggable="true" class="resizable"></div>
HTML 5を見ることができますが、ドラッグできる領域を制限することはできないと思います。目的地だけです。
http://www.w3schools.com/html/html5_draganddrop.asp
また、優れたライブラリを使用してもかまわない場合は、Dragulaを試してみることをお勧めします。
cssテクニックを使用するだけでは、これは私には不可能に思えます。しかし、jqueryuiドラッグ可能を使用することができます:
$('#drag_me').draggable();
CSSは、ドキュメントの表示を記述するように設計されています。これには、ユーザーの操作に応じてそのプレゼンテーションを変更するためのいくつかの機能があります(主に:hover
、インタラクティブなものを指していることを示すため)。
何かをドラッグ可能にすることは、プレゼンテーションの単純な問題ではありません。これは、JavaScriptによって処理される対話型ロジックの領域にしっかりと存在します。
あなたが望むことは達成できません。
CSSプロパティを使用してこれを行うことができます-webkit-user-drag
:
#drag_me {
-webkit-user-drag: element;
}
<div draggable="true" id="drag_me">
Your draggable content here
</div>
このプロパティは、SafariやChromeなどのWebkitブラウザーでのみサポートされていますが、CSSのみを使用して機能させるための優れたアプローチです。
HTML5draggable
属性は、ドラッグが他のブラウザで機能することを保証するためにのみ設定されます。
あなたはここでより多くの情報を見つけることができます:http://help.dottoro.com/lcbixvwm.php
私はこれがW3Schoolsから本当に役立つことを発見しました:
// Make the DIV element draggable:
dragElement(document.getElementById("mydiv"));
function dragElement(elmnt) {
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
if (document.getElementById(elmnt.id + "header")) {
// if present, the header is where you move the DIV from:
document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
} else {
// otherwise, move the DIV from anywhere inside the DIV:
elmnt.onmousedown = dragMouseDown;
}
function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
// get the mouse cursor position at startup:
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
// call a function whenever the cursor moves:
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e = e || window.event;
e.preventDefault();
// calculate the new cursor position:
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
// set the element's new position:
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
}
function closeDragElement() {
// stop moving when mouse button is released:
document.onmouseup = null;
document.onmousemove = null;
}
}
#mydiv {
position: absolute;
z-index: 9;
background-color: #f1f1f1;
border: 1px solid #d3d3d3;
text-align: center;
}
#mydivheader {
padding: 10px;
cursor: move;
z-index: 10;
background-color: #2196F3;
color: #fff;
}
<!-- Draggable DIV -->
<div id="mydiv">
<!-- Include a header DIV with the same name as the draggable DIV, followed by "header" -->
<div id="mydivheader">Click here to move</div>
<p>Move</p>
<p>this</p>
<p>DIV</p>
</div>
ぜひご利用ください!
ドラッグ可能なdiv。ドラッグ可能なdivnot possible only with CSS
が必要な場合は、javascriptを使用する必要があります。
Stack Overflowからさまざまなコードスニペットをコピーして貼り付けることでこれを自分でやろうとするうさぎの穴を掘り下げた後、ドラッグ可能でサイズ変更可能なdivを(ある程度)簡単に作成できるInteractJSライブラリを使用することを強くお勧めします。
$('#dialog').draggable({ handle: "#tblOverlay" , scroll: false });
// Pop up Window
<div id="dialog">
<table id="tblOverlay">
<tr><td></td></tr>
<table>
</div>
オプション: