亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

附上一個demo,我想要讓文字浮上來,探照燈部分高亮,大神給我一點思路吧??!

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>剪輯區域--demo4</title>

<style>

*{margin: 0;padding: 0}

canvas{display: block;margin: 50px auto;border:solid 1px grey;}

</style>

</head>

<body>

<canvas id="canvas"></canvas>

<script>

var canvas = document.getElementById('canvas');

canvas.width = 800;

canvas.height = 500;

var cxt = canvas.getContext('2d');

//填充canvas

function drawRect(cxt){

cxt.fillStyle = 'rgba(1,1,1)';

cxt.fillRect(0,0,canvas.width,canvas.height);


}


//探照燈,x,y為鼠標相對canvas的坐標

function drawArc(cxt,x,y,r){

cxt.clearRect(0,0,canvas.width,canvas.height);

drawRect(cxt);


cxt.save();

cxt.arc(x,y,r,0,2*Math.PI);

cxt.fillStyle = '#fff';

cxt.fill();

cxt.clip();


drawText(cxt)

cxt.restore();

}

//繪制文字

function drawText(cxt){

//繪制三行文字

cxt.clearRect(0,0,canvas.width,canvas.height)

cxt.beginPath();

cxt.font = '20px 隸書';

cxt.fillStyle = 'green';

cxt.fillText('生命,就像是一張借記卡,從你呱呱墜地,還未有名字的時候,你生命的借記卡就已經毫不延遲的啟動了它的業務。',0,50)

cxt.fillText('儲存在生命借記卡上的數字,就是你這一生所有的時光。',0,100)

cxt.fillText('幸好不知道,我們才會一邊消費著卡額,一邊無憂無慮的生活。',0,150)

}

canvas.onmousemove = function(event){

//計算出鼠標相對canvas的位置

clientX = event.clientX;

clientY = event.clientY;

curX = clientX - this.offsetLeft;

curY = clientY - this.offsetTop;


drawArc(cxt,curX,curY,50)


}

canvas.onmouseout = function(){

cxt.clearRect(0,0,canvas.width,canvas.height);

drawRect(cxt);

}

drawRect(cxt)

</script>

</body>

</html>


正在回答

1 回答

不太清楚你到底想要什么效果,看看這個行不行吧

<!DOCTYPE?html>
<html>
<head>
	<meta?charset="UTF-8">
	<title>剪輯區域--demo4</title>
	<style>
		*?{
			margin:?0;
			padding:?0
		}
		
		canvas?{
			display:?block;
			margin:?50px?auto;
			border:?solid?1px?grey;
		}
	</style>
</head>

<body>
	<canvas?id="canvas"></canvas>
	<script>
		var?canvas?=?document.getElementById('canvas');
		canvas.width?=?800;
		canvas.height?=?500;
		var?cxt?=?canvas.getContext('2d');
		//探照燈,x,y為鼠標相對canvas的坐標
		function?drawArc(cxt,?x,?y,?r)?{
			cxt.clearRect(0,?0,?canvas.width,?canvas.height);
			drawText(cxt);

			cxt.save();
			cxt.arc(x,?y,?r,?0,?2?*?Math.PI);
			cxt.fillStyle?=?'#fff';
			cxt.fill();
			cxt.clip();

			drawText(cxt,'green')
			cxt.restore();
		}
		//繪制文字
		function?drawText(cxt,color)?{
			//繪制三行文字
			cxt.clearRect(0,?0,?canvas.width,?canvas.height)
			cxt.beginPath();
			cxt.font?=?'20px?隸書';
			cxt.fillStyle?=?color?||?'black';
			cxt.fillText('生命,就像是一張借記卡,從你呱呱墜地,還未有名字的時候,你生命的借記卡就已經毫不延遲的啟動了它的業務。',?0,?50)
			cxt.fillText('儲存在生命借記卡上的數字,就是你這一生所有的時光。',?0,?100)
			cxt.fillText('幸好不知道,我們才會一邊消費著卡額,一邊無憂無慮的生活。',?0,?150)
		}
		canvas.onmousemove?=?function(event)?{
			//計算出鼠標相對canvas的位置
			clientX?=?event.clientX;
			clientY?=?event.clientY;
			curX?=?clientX?-?this.offsetLeft;
			curY?=?clientY?-?this.offsetTop;

			drawArc(cxt,?curX,?curY,?50)

		}
		canvas.onmouseout?=?function()?{
			cxt.clearRect(0,?0,?canvas.width,?canvas.height);
			drawText(cxt);
		}
	</script>
</body>
</html>


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

附上一個demo,我想要讓文字浮上來,探照燈部分高亮,大神給我一點思路吧!!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號