스크래치 카드를 사용해 본 적이 있나요? 우연히 상을 받을 수 있는 종류. 오늘은 HTML5 기술을 기반으로 한 스크래치 카드 효과를 공유하겠습니다. PC에서는 마우스를 누르고 있기만 하면 됩니다. 모바일에서는 손가락을 누른 채 레이어를 살짝 긁어내면 실제 스크래치를 시뮬레이션할 수 있습니다. 효과.
소스 코드 다운로드: 다운로드하려면 클릭
HTML5 Canvas와 그것이 제공하는 API를 결합하여 Canvas 요소에 회색 마스크 레이어를 그린 다음 사용자의 마우스 움직임과 제스처를 감지하여 투명한 그래픽을 그려서 Canvas 배경을 볼 수 있도록 합니다. 실제 사진은 스크래치 카드 효과를 얻을 수 있습니다.
HTML
페이지에 캔버스 태그 요소만 추가하면 되고 나머지는 JavaScript에 따라 다릅니다. 캔버스 요소는 HTML5에 고유한 요소이며 HTML5를 지원하는 최신 브라우저에서 실행됩니다.
자바스크립트
우선 페이지의 마우스 선택 및 드래그 이벤트를 비활성화해야 합니다. 즉, 선택 작업을 실행하지 않아야 합니다.
var bodyStyle = document.body .style;
bodyStyle.mozUserSelect = 'none';
bodyStyle.webkitUserSelect = 'none';
그런 다음 이미지 클래스를 정의하고 캔버스 요소를 설정합니다. 및 위치 속성. 이 예에서는 두 개의 무작위 사진을 사용하고 매번 무작위 사진을 배경으로 새로 고칩니다.
var img = new Image( );
var canvas = document.querySelector('canvas');
canvas.style.BackgroundColor='transparent';
canvas.style.position =
var imgs = [ 'p_0.jpg','p_1.jpg'];
var num = Math.floor(Math.random()*2)
img.src =
그런 다음 이미지가 로드된 것으로 감지되면 먼저 몇 가지 속성과 기능을 정의합니다. eventDown()은 press 이벤트를 정의하는 데 사용됩니다. release 이벤트를 정의합니다. eventMove()는 누를 때 좌표 변위를 구하고 arc(x, y, 10, 0, Math.PI * 2)를 통해 작은 점을 그리는 이동 이벤트를 정의합니다.
img.addEventListener('load ', function (e) {
var ctx;
var w = img.width,
h = img.height;
var offsetX = canvas.offsetLeft,
offsetY = canvas.offsetTop ;
var mousedown = false;
function layer(ctx) {
ctx.fillStyle = 'gray'
ctx.fillRect(0, 0, w, h); > }
function eventDown(e){
e.preventDefault();
mousedown=true;
function eventUp(e){
e .preventDefault( );
mousedown=false;
}
function eventMove(e){
e.preventDefault()
if(mousedown) {
if( e.changedTouches ){
e=e.changedTouches[e.changedTouches.length-1];
}
var x = (e.clientX document.body.scrollLeft || e.pageX) - offsetX || 0 ,
y = (e.clientY document.body.scrollTop || e.pageY) - offsetY || 0
with(ctx) {
startPath()
arc(x) , y, 10, 0, Math.PI * 2);//점 그리기
fill()
}
}
}
//...
} );
마지막으로 캔버스를 통해 위 함수를 호출하고, 그래픽을 그리고, 터치 및 마우스 이벤트를 수신하고, 해당 함수를 호출합니다.
img.addEventListener('load', function(e) {
//..이전 코드에서 이어짐
canvas.width=w;
canvas.height=h;
canvas.style.BackgroundImage='url(' img.src ')';
ctx=canvas.getContext('2d')
ctx.fillStyle='transparent'
ctx.fillRect (0 , 0, w, h);//직사각형 그리기
layer(ctx);
ctx.globalCompositeOperation = 'destination-out'
canvas.addEventListener(' touchstart', eventDown);
canvas.addEventListener('touchend', eventUp);
canvas.addEventListener('touchmove', eventMove)
canvas.addEventListener('mousedown', eventDown); > canvas.addEventListener('mouseup', eventUp);
canvas.addEventListener('mousemove', eventMove)
을 완성합니다.

html5的div元素默认一行不可以放两个。div是一个块级元素,一个元素会独占一行,两个div默认无法在同一行显示;但可以通过给div元素添加“display:inline;”样式,将其转为行内元素,就可以实现多个div在同一行显示了。

html5中列表和表格的区别:1、表格主要是用于显示数据的,而列表主要是用于给数据进行布局;2、表格是使用table标签配合tr、td、th等标签进行定义的,列表是利用li标签配合ol、ul等标签进行定义的。

固定方法:1、使用header标签定义文档头部内容,并添加“position:fixed;top:0;”样式让其固定不动;2、使用footer标签定义尾部内容,并添加“position: fixed;bottom: 0;”样式让其固定不动。

html5中不支持的标签有:1、acronym,用于定义首字母缩写,可用abbr替代;2、basefont,可利用css样式替代;3、applet,可用object替代;4、dir,定义目录列表,可用ul替代;5、big,定义大号文本等等。

HTML5中画布标签是“<canvas>”。canvas标签用于图形的绘制,它只是一个矩形的图形容器,绘制图形必须通过脚本(通常是JavaScript)来完成;开发者可利用多种js方法来在canvas中绘制路径、盒、圆、字符以及添加图像等。

html5废弃了dir列表标签。dir标签被用来定义目录列表,一般和li标签配合使用,在dir标签对中通过li标签来设置列表项,语法“<dir><li>列表项值</li>...</dir>”。HTML5已经不支持dir,可使用ul标签取代。

3种取消方法:1、给td元素添加“border:none”无边框样式即可,语法“td{border:none}”。2、给td元素添加“border:0”样式,语法“td{border:0;}”,将td边框的宽度设置为0即可。3、给td元素添加“border:transparent”样式,语法“td{border:transparent;}”,将td边框的颜色设置为透明即可。

因为html5不基于SGML(标准通用置标语言),不需要对DTD进行引用,但是需要doctype来规范浏览器的行为,也即按照正常的方式来运行,因此html5只需要写doctype即可。“!DOCTYPE”是一种标准通用标记语言的文档类型声明,用于告诉浏览器编写页面所用的标记的版本。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Dreamweaver Mac版
시각적 웹 개발 도구
