css3或js怎么控制动画、给圆中心定位然后动画是向外扩散

html-css05

css3或js怎么控制动画、给圆中心定位然后动画是向外扩散,第1张

涉及到 CSS3 的动画(animation)、2D 转换(transform: scale),具体如代码所示。

[html] view plain copy

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>无标题文档</title>

<style>

@keyframes warn {

0% {

transform: scale(0)

opacity: 0.0

}

25% {

transform: scale(0)

opacity: 0.1

}

50% {

transform: scale(0.1)

opacity: 0.3

}

75% {

transform: scale(0.5)

opacity: 0.5

}

100% {

transform: scale(1)

opacity: 0.0

}

}

@-webkit-keyframes "warn" {

0% {

-webkit-transform: scale(0)

opacity: 0.0

}

25% {

-webkit-transform: scale(0)

opacity: 0.1

}

50% {

-webkit-transform: scale(0.1)

opacity: 0.3

}

75% {

-webkit-transform: scale(0.5)

opacity: 0.5

}

100% {

-webkit-transform: scale(1)

opacity: 0.0

}

}

.container {

position: relative

width: 40px

height: 40px

border: 1px solid #000

}

/* 保持大小不变的小圆圈 */

.dot {

position: absolute

width: 6px

height: 6px

left: 15px

top: 15px

-webkit-border-radius: 20px

-moz-border-radius: 20px

border: 2px solid red

border-radius: 20px

z-index: 2

}

/* 产生动画(向外扩散变大)的圆圈 */

.pulse {

position: absolute

width: 24px

height: 24px

left: 2px

top: 2px

border: 6px solid red

-webkit-border-radius: 30px

-moz-border-radius: 30px

border-radius: 30px

z-index: 1

opacity: 0

-webkit-animation: warn 3s ease-out

-moz-animation: warn 3s ease-out

animation: warn 3s ease-out

-webkit-animation-iteration-count: infinite

-moz-animation-iteration-count: infinite

animation-iteration-count: infinite

}

</style>

</head>

<body>

<div class="container">

<div class="dot"></div>

<div class="pulse"></div>

</div>

</body>

</html>

引用

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js" type="text/javascript">

</script>

<script language="javascript" type="text/javascript">

$(function() {

$('div.circle').mouseover(function() {

$('div.outer').addClass('hover')

$('div.middle').addClass('hover')

})

$('div.circle').mouseout(function() {

$('div.outer').removeClass('hover')

$('div.middle').removeClass('hover')

})

})

</script>

做出之后的效果图:

可以使用 DrawArc 方法来实现有间隔的圆。这个方法需要提供七个参数:左上角 X 坐标、左上角 Y 坐标、右下角 X 坐标、右下角 Y 坐标、开始弧度、结束弧度、是否使用顺时针绘制(true 为顺时针)。