推荐8款HTML5相关的特殊效果 看看都能够实现哪些功能

html-css043

推荐8款HTML5相关的特殊效果 看看都能够实现哪些功能,第1张

HTML5是HTML的升级版,HTML5有两大特点:首先,强化了 Web 网页的表现性能。其次,追加了本地数据库等 Web

应用的功能。广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。今天我们推荐8款使用HTML5生成的特

殊效果,希望可以对大家的使用带来帮助!

HTML5实现的五子棋游戏

在线演示

这是一款使用HTML5实现的五子棋特效,与计算机的对局你不见得能次次都赢得胜利,不信可以点击在线演示。

一款不需要视频文件的视频播放器-Frame player

在线演示

HTML5视频是非常棒的,它可以很容易的用在多款设备上。但是它也有自己的问题,比如移动设备的播放器,可能有不同版本不兼容的情况。今天我们介绍这款视频播放器完善了之前的效果,用起来更方便。希望大家喜欢!

3D菜单

在线演示

或许在现如今这个科技发达的时代,在线点餐已不是新鲜事。餐厅可以对Menu进行设计,点击菜名会相应弹出菜品的照片,或者还可以增加卡路里,原材料和客户们的评价等。绝对是一个超时髦的创意!

用HTML5的画布实现撕布的动画效果

在线演示

用HTML5的画布实现撕布的效果,滑动鼠标,布会随着鼠标变动。点击鼠标左键,然后滑动鼠标,布就会被割开。如果你还没有查看过这款演示效果,那绝对逼真的让你震撼!

HTML5 Canvas(画布) 基础使用和介绍

在线下载

还记得在过去的Web前端开发中,如果你需要绘图或者生成相关图形的话,使用Flash可能是你唯一或者说最强大的实现方式,而在近些年的技术

热点HTML5标准中,HTML

Canvas(画布)能够更加方便的帮助你实现2D绘制图形图像及其各种动画效果功能。在今天的这篇技术教程中我们将介绍基本的Canvas使用,希望大

家觉得有帮助!

HTML5画布生成的2D光源效果

在线演示

超金属的背景,仿佛探照灯的经过让他看上去更加的立体。这是一款使用HTML5 Canvas生成的2D光源效果。绝对让你不后悔使用它!

HTML5的Flappy bird实现

在线演示

著名的Flappy Bird,相信知道的人一定不少吧,点击你的空格,不要让它掉下来,看看你最终的成绩有多好。发上来我们切磋一下吧.

Sonic - 循环加载的利器

在线演示1 在线演示2 在线演示3

Sonic是一个不到3k,非常小的JS类库,你可以用这个类库来创建自定义的加载动画。它的循环动画效果非常赞,比如你可以用它做一条不断追

逐自己尾巴

的蛇,这样的动画。Sonic使用了HTML5的canvas元素和其相关API。它基于在一定小的时间间隔上,基于预定义的路径,画出下一个形状,从而

完成动画效果。你可以使用arc,bezier,或line的方法来定义路径。

主要思想:

首先要准备一张有连续帧的图片,然后利用HTML5 Canvas的draw方法在不同的时间间隔绘制不同的帧,这样看起来就像动画在播放。

关键技术点:

JavaScript 函数setTimeout()有两个参数,第一个是参数可以传递一个JavaScript方法,

另外一个参数代表间隔时间,单位为毫秒数。代码示例:

setTimeout( update, 1000/30)

Canvas的API-drawImage()方法,需要指定全部9个参数:

ctx.drawImage(myImage, offw, offh, width,height, x2, y2, width, height)

其中offw, offh是指源图像的起始坐标点,width, height表示源图像的宽与高,x2,y2表

示源图像在目标Canvas上的起始坐标点。

<!DOCTYPE html> 

<html> 

<head> 

<meta http-equiv="X-UA-Compatible" content="chrome=IE8"> 

<meta http-equiv="Content-type" content="text/htmlcharset=UTF-8"> 

<title>Canvas Mouse Event Demo</title> 

<link href="default.css" rel="stylesheet" /> 

<script> 

var ctx = null // global variable 2d context 

var started = false 

var mText_canvas = null 

var x = 0, y =0 

var frame = 0 // 22 5*5 + 2 

var imageReady = false 

var myImage = null 

var px = 300 

var py = 300 

var x2 = 300 

var y2 = 0 

window.onload = function() { 

var canvas = document.getElementById("animation_canvas") 

console.log(canvas.parentNode.clientWidth) 

canvas.width = canvas.parentNode.clientWidth 

canvas.height = canvas.parentNode.clientHeight 

if (!canvas.getContext) { 

console.log("Canvas not supported. Please install a HTML5 compatible browser.") 

return 

// get 2D context of canvas and draw rectangel 

ctx = canvas.getContext("2d") 

ctx.fillStyle="black" 

ctx.fillRect(0, 0, canvas.width, canvas.height) 

myImage = document.createElement('img') 

myImage.src = "../robin.png" 

myImage.onload = loaded() 

function loaded() { 

imageReady = true 

setTimeout( update, 1000/30) 

function redraw() { 

ctx.clearRect(0, 0, 460, 460) 

ctx.fillStyle="black" 

ctx.fillRect(0, 0, 460, 460) 

// find the index of frames in image 

var height = myImage.naturalHeight/5 

var width = myImage.naturalWidth/5 

var row = Math.floor(frame / 5) 

var col = frame - row * 5 

var offw = col * width 

var offh = row * height 

// first robin 

px = px - 5 

py = py - 5 

if(px < -50) { 

px = 300 

if(py < -50) { 

py = 300 

//var rate = (frame+1) /22 

//var rw = Math.floor(rate * width) 

//var rh = Math.floor(rate * height) 

ctx.drawImage(myImage, offw, offh, width, height, px, py, width, height) 

// second robin 

x2 = x2 - 5 

y2 = y2 + 5 

if(x2 < -50) { 

x2 = 300 

y2 = 0 

ctx.drawImage(myImage, offw, offh, width, height, x2, y2, width, height) 

function update() { 

redraw() 

frame++ 

if (frame >= 22) frame = 0 

setTimeout( update, 1000/30) 

</script> 

</head> 

<body> 

<h1>HTML Canvas Animations Demo - By Gloomy Fish</h1> 

<pre>Play Animations</pre> 

<div id="my_painter"> 

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

</div> 

</body> 

</html>

首先是HTML代码,非常简单,列出我们需要渲染的文字:

<div class="foo">

  <span class="letter" data-letter="A">A</span>

  <span class="letter" data-letter="B">B</span>

  <span class="letter" data-letter="C">C</span>

  <span class="letter" data-letter="D">D</span>

  <span class="letter" data-letter="E">E</span>

  <span class="letter" data-letter="F">F</span>

  <span class="letter" data-letter="G">G</span>

  <span class="letter" data-letter="H">H</span>

  <span class="letter" data-letter="I">I</span>

  <span class="letter" data-letter="L">L</span>

  <span class="letter" data-letter="M">M</span>

  <span class="letter" data-letter="N">N</span>

  <span class="letter" data-letter="O">O</span>

  <span class="letter" data-letter="P">P</span>

  <span class="letter" data-letter="Q">Q</span>

  <span class="letter" data-letter="R">R</span>

  <span class="letter" data-letter="S">S</span>

  <span class="letter" data-letter="T">T</span>

  <span class="letter" data-letter="U">U</span>

  <span class="letter" data-letter="V">V</span>

  <span class="letter" data-letter="Z">Z</span>

</div> CSS3

.letter{

  display: inline-block

  font-weight: 900

  font-size: 8em

  margin: 0.2em

  position: relative

  color: #00B4F1

  transform-style: preserve-3d

  perspective: 400

  z-index: 1

} 这样我们就让这些字母安安静静的排列起来,并有了自己的背景颜色,等待强大的CSS3来渲染。

      接下来我们要让文字在鼠标滑过的时候产生翻转倾斜的动画。

.letter:before, .letter:after{

  position:absolute

  content: attr(data-letter)

  transform-origin: top left

  top:0

  left:0

}

.letter, .letter:before, .letter:after{

  transition: all 0.3s ease-in-out

}

.letter:before{

  color: #fff

  text-shadow:

    -1px 0px 1px rgba(255,255,255,.8),

    1px 0px 1px rgba(0,0,0,.8)

  z-index: 3

  transform:

    rotateX(0deg)

    rotateY(-15deg)

    rotateZ(0deg)

}

.letter:after{

  color: rgba(0,0,0,.11)

  z-index:2

  transform:

    scale(1.08,1)

    rotateX(0deg)

    rotateY(0deg)

    rotateZ(0deg)

    skew(0deg,1deg)

}

.letter:hover:before{

  color: #fafafa

  transform:

    rotateX(0deg)

    rotateY(-40deg)

    rotateZ(0deg)

}

.letter:hover:after{

  transform:

    scale(1.08,1)

    rotateX(0deg)

    rotateY(40deg)

    rotateZ(0deg)

    skew(0deg,22deg)

}