欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

div 拖動 布局

鄭雨菲1年前6瀏覽0評論
<div>拖動布局是一種常用于網頁設計和開發的技術,它允許用戶通過鼠標拖動頁面上的元素來改變它們的位置。這種技術可以用于創建各種布局,例如可調整大小的面板、可排序的列表和可拖動的圖像。在本文中,我們將探討如何使用<div>元素實現拖動布局的幾個示例。</div>

示例一:可調整大小的面板


<div>,我們創建一個具有固定大小和邊框的<div>元素作為面板的基本外觀。然后,我們使用CSS屬性制作鼠標指針樣式以指示該面板可以調整大小。最后,我們使用JavaScript代碼來實現拖動和調整大小的功能。</div>
<style>
.panel {
width: 200px;
height: 150px;
border: 1px solid #000;
resize: both;
overflow: auto;
cursor: nwse-resize;
}
	</style>
<br>
	<div class="panel">
<p>這是一個可調整大小的面板。</p>
	</div>
<br>
	<script>
let panel = document.querySelector('.panel');
let isResizing = false;
let lastX = 0;
let lastY = 0;
let minWidth = 100;
let minHeight = 80;
<br>
		panel.addEventListener('mousedown', function(e) {
isResizing = true;
lastX = e.clientX;
lastY = e.clientY;
e.preventDefault();
});
<br>
		document.addEventListener('mousemove', function(e) {
if (!isResizing) return;
<br>
			let width = parseInt(getComputedStyle(panel).width);
let height = parseInt(getComputedStyle(panel).height);
let deltaX = e.clientX - lastX;
let deltaY = e.clientY - lastY;
let newWidth = width + deltaX;
let newHeight = height + deltaY;
<br>
			if (newWidth >= minWidth) {
panel.style.width = newWidth + 'px';
lastX = e.clientX;
}
<br>
			if (newHeight >= minHeight) {
panel.style.height = newHeight + 'px';
lastY = e.clientY;
}
});
<br>
		document.addEventListener('mouseup', function() {
isResizing = false;
});
	</script>

<div>在這個例子中,我們使用CSS來定義面板的初始樣式,然后添加了一個具有調整大小指示器的鼠標樣式。在JavaScript中,我們使用了mousedown、mousemove和mouseup事件來響應用戶的操作。當用戶按下鼠標按鈕時,isResizing會設置為true,表示正在調整大小的操作。我們還獲取了初始鼠標位置(lastX和lastY),以便在鼠標移動時計算面板大小的變化量。通過計算鼠標移動的差值,我們可以控制面板的寬度和高度,并在達到最小寬度和最小高度限制時停止調整大小。</div>

示例二:可排序的列表


<div>現在,讓我們來看一個更復雜的例子,我們將創建一個可拖動的、可排序的列表。在這個例子中,我們使用HTML5的拖放API來實現這個功能。</div>
<style>
.list {
list-style-type: none;
padding: 0;
margin: 0;
}
<br>
		.list li {
border: 1px solid #000;
padding: 10px;
margin-bottom: 5px;
}
	</style>
<br>
	<ul class="list">
<li draggable="true">項目1</li>
<li draggable="true">項目2</li>
<li draggable="true">項目3</li>
<li draggable="true">項目4</li>
	</ul>
<br>
	<script>
let list = document.querySelector('.list');
let draggingElement = null;
<br>
		list.addEventListener('dragstart', function(e) {
draggingElement = e.target;
});
<br>
		list.addEventListener('dragover', function(e) {
e.preventDefault();
let targetElement = e.target;
if (targetElement.className === 'list') {
return;
}
while (targetElement.parentNode !== list) {
targetElement = targetElement.parentNode;
}
list.insertBefore(draggingElement, targetElement);
});
<br>
		list.addEventListener('dragend', function(e) {
draggingElement = null;
});
	</script>

<div>在這個例子中,我們創建了一個無序列表,并將每個列表項設置為可拖動的(draggable="true")。在JavaScript中,我們使用了dragstart、dragover和dragend事件來實現拖放功能。當用戶開始拖動列表項時,dragstart事件會觸發,并將draggingElement設置為當前被拖動的列表項。在dragover事件中,我們使用preventDefault()方法來阻止默認的拖放行為,并根據鼠標的位置重新排序列表項。</div>
<div>通過這兩個例子,我們可以看到<div>元素拖動布局的強大功能。無論是可調整大小的面板還是可排序的列表,都可以通過簡單的HTML、CSS和JavaScript來實現。這種技術為網頁設計師和開發人員提供了更靈活、交互性更強的用戶界面設計選項。</div>