W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在小程序頁面添加自定義水印。使用水印組件 <water-mark>
時(shí),該組件需與被加上水印的模塊對(duì)應(yīng)的 <view>
保持同級(jí)。
使用水印的前提條件如下:
下載 水印 Demo.zip 文件,并解壓至本地。
page.axml
<water-mark fillText="侵權(quán)必究" />
字段名 | 簡(jiǎn)介 | 類型 | 默認(rèn)值 |
---|---|---|---|
fillText | 水印內(nèi)容 | String | 侵權(quán)必究 |
index.axml
<canvas id="canvas" width="610" height="610" class="water-canvas" />
index.acss
.water-canvas {
position: fixed;
top:0;
left: 0;
width: 100vw;
height: 100vh;
background-color: transparent;
}
/* 控制button組件可以在水印上點(diǎn)擊 */
button{
position: relative;
}
index.js
Component({
props: {
fillText: '侵權(quán)必究' // 水印文本,默認(rèn)值
},
didMount() {
this.ctx = my.createCanvasContext('canvas');
this.drawWater();
},
didUpdate() {
this.drawWater();
},
methods: {
/**
* @name drawWater
* @description 填充水印
*/
drawWater() {
const { fillText } = this.props;
this.ctx.rotate(18 * Math.PI / 180);// 設(shè)置文字的旋轉(zhuǎn)角度,角度為30°
// 對(duì)斜對(duì)角線以左部分進(jìn)行文字的填充
for (let j = 1; j < 10; j++) { // 用for循環(huán)達(dá)到重復(fù)輸出文字的效果,這個(gè)for循環(huán)代表縱向循環(huán)
this.fill(fillText, 0, 90 * j);
for (let i = 1; i < 10; i++) { // 這個(gè)for循環(huán)代表橫向循環(huán),
this.fill(fillText, 130 * i, 80 * j);
}
}// 兩個(gè)for循環(huán)的配合,使得文字充滿斜對(duì)角線的左下部分
// 對(duì)斜對(duì)角線以右部分進(jìn)行文字的填充邏輯同上
for (let j = 0; j < 10; j++) {
this.fill(fillText, 0, -80 * j);
for (let i = 1; i < 10; i++) {
this.fill(fillText, 130 * i, -80 * j);
}
}
this.ctx.draw();
},
/**
* @name fill
* @description 繪畫水印
*/
fill(text, x, y){
this.ctx.beginPath();
this.ctx.setFontSize(20);
this.ctx.setFillStyle('rgba(169,169,169,.2)');
this.ctx.fillText(text, x, y);
}
}
});
index.json
{
"component": true
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: