99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Svelte 添加參數(shù)

2023-02-22 14:53 更新

像過渡和動(dòng)畫一樣,一個(gè)動(dòng)作可以帶一個(gè)參數(shù),動(dòng)作函數(shù)將與它所屬的元素一起被調(diào)用。

在這里,我們使用?longpress?操作,只要用戶在給定的持續(xù)時(shí)間內(nèi)按下并按住按鈕,就會(huì)觸發(fā)同名事件?,F(xiàn)在,如果您切換到 ?longpress.js? 文件,您會(huì)看到它被硬編碼為 500 毫秒。

我們可以更改動(dòng)作函數(shù)以接受?duration?作為第二個(gè)參數(shù),并將該?duration?傳遞給 ?setTimeout? 調(diào)用:

export function longpress(node, duration) {
	// ...

	const handleMousedown = () => {
		timer = setTimeout(() => {
			node.dispatchEvent(
				new CustomEvent('longpress')
			);
		}, duration);
	};

	// ...
}

回到 ?App.svelte?,我們可以將?duration?值傳遞給操作:

<button use:longpress={duration}

這幾乎可以工作——事件現(xiàn)在只在 2 秒后觸發(fā)。但是如果你將持續(xù)時(shí)間向下滑動(dòng),它仍然需要兩秒鐘。

要改變它,我們可以在 ?longpress.js? 中添加一個(gè)?update?方法。每當(dāng)參數(shù)更改時(shí)都會(huì)調(diào)用它:

return {
	update(newDuration) {
		duration = newDuration;
	},
	// ...
};

如果你需要將多個(gè)參數(shù)傳遞給一個(gè)動(dòng)作,將它們組合成一個(gè)對(duì)象,如 ?use:longpress={{duration, spiciness}}?

示例代碼

  • App.svelte

<script>
	import { longpress } from './longpress.js';

	let pressed = false;
	let duration = 2000;
</script>

<label>
	<input type=range bind:value={duration} max={2000} step={100}>
	{duration}ms
</label>

<button use:longpress={duration}
	on:longpress="{() => pressed = true}"
	on:mouseenter="{() => pressed = false}"
>press and hold</button>

{#if pressed}
	<p>congratulations, you pressed and held for {duration}ms</p>
{/if}

  • longpress.js

export function longpress(node, duration) {
	let timer;
	
	const handleMousedown = () => {
		timer = setTimeout(() => {
			node.dispatchEvent(
				new CustomEvent('longpress')
			);
		}, duration);
	};
	
	const handleMouseup = () => {
		clearTimeout(timer)
	};

	node.addEventListener('mousedown', handleMousedown);
	node.addEventListener('mouseup', handleMouseup);

	return {
		update(newDuration) {
			duration = newDuration;
		},
		destroy() {
			node.removeEventListener('mousedown', handleMousedown);
			node.removeEventListener('mouseup', handleMouseup);
		}
	};
}


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)