.sweepstake {
color: orange;
font-size: 24px;
font-weight: bold;
}

先来一个简单的

        <style>
.sweepstake {
color: orange;
font-size: 24px;
font-weight: bold;
}
</style> <script src="http://files.cnblogs.com/rubylouvre/avalon2014123.js"> </script>
<script>
var id
var vm = avalon.define({
$id: "test",
number: 100,
click: function() {
if (!id) {
id = setInterval(function() {
vm.number--
if (vm.number === 0) {
clearInterval(id)
id = null
}
}, 100)
}
}
})
</script> <div ms-controller="test">
<p class="sweepstake">{{number}}
</p>
<p><button type="button" ms-click="click">xxx</button></p>
</div>

var id
var vm = avalon.define({
$id: "test",
number: 100,
click: function() {
if (!id) {
id = setInterval(function() {
vm.number--
if (vm.number === 0) {
clearInterval(id)
id = null
}
}, 100)
}
}
})

{{number}}

xxx

再来一个复杂的有动画效果的柏青哥

<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script src="avalon.js">

</script>
<style>
.pachinko{
height: 40px;
width: 245px;
border: 5px solid black;
padding: 15px;
}
.pachinko .cell{
margin-right: 20px;
position: relative;
float: left;
border: 1px solid blueviolet;
width: 30px;
height: 40px;
overflow:hidden
}
.pachinko .cell.last{
margin-right: 0px;
}
.pachinko .cell .top{
position: absolute;
display: block;
top: 0px;
left: 0px;
text-align: center;
line-height: 40px;
width: 30px;
height: 40px;
}
.pachinko .cell .middle{
position: absolute;
display: block;
top: -40px;
left: 0px;
text-align: center;
line-height: 40px;
width: 30px;
height: 40px;
}
</style>
<script>

var id
var vm = avalon.define({
$id: "test",
array: [{number: 9}, {number: 9}, {number: 9}, {number: 9}, {number: 9}],
subtractOne: function(a) {
var a = a - 1
if (a < 0) {
a = 9
}
return a
},
distance: 0, //0-40 每个格子都高40px, 那么top的移动距离也是40, 其初始值为0
start: function() {
for (var i = 0, n = vm.array.length; i < n; i++) {
vm.array[i].number = Math.floor(Math.random() * 10)
}
if (!id) {
id = setInterval(function() {
vm.distance += 5
if (vm.distance > 50) {
vm.distance = 0
for (var i = 0, n = vm.array.length; i

.pachinko{
height: 40px;
width: 245px;
border: 5px solid black;
padding: 15px;
}
.pachinko .cell{
margin-right: 20px;
position: relative;
float: left;
border: 1px solid blueviolet;
width: 30px;
height: 40px;
overflow:hidden
}
.pachinko .cell.last{
margin-right: 0px;
}
.pachinko .cell .top{
position: absolute;
display: block;
top: 0px;
left: 0px;
text-align: center;
line-height: 40px;
width: 30px;
height: 40px;
}
.pachinko .cell .middle{
position: absolute;
display: block;
top: -40px;
left: 0px;
text-align: center;
line-height: 40px;
width: 30px;
height: 40px;
}

var id
var vm = avalon.define({
$id: "test2",
array: [{number: 9}, {number: 9}, {number: 9}, {number: 9}, {number: 9}],
subtractOne: function(a) {
var a = a - 1
if (a 50) {
vm.distance = 0
for (var i = 0, n = vm.array.length; i 9){
vm.array[i].number = 0
}
}
}
}, 20)
}

},
stop: function() {
if (id) {
clearInterval(id)
id = null
}
vm.distance = 0
}
})

{{subtractOne(el.number)}}
{{el.number}}

startstop

简单说一下原理,表面上只有五个格子,其实为了出现更好的过渡效果,总共有10个格子。其中有五个位于另五个的上方,然后动画就是改变格子的top样式值就行了。对应avalon,就是改vm中的distance属性值, 它会在定时器里面快速地递加,一直加到50就归零。而格子里面的值,在第一次点击时进行第一次洗牌,然后每当格子快跌出可视区后再递增一,当它大于10时,就变回0。这样不断变啊变,直到用户点了stop按钮就才得结果。

avalon做的抽奖效果的更多相关文章

  1. bootstrap中table页面做省市区级联效果(级联库见前面级联编辑)(非select下拉框)

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. CSS3做动物走路效果

    CSS3做动物走路效果 采用的CSS3切换序列帧做 核心代码如下<pre>.game .role { width: 60px; height: 86px; position: absolu ...

  3. 2021年都要过去啦,你还在用Excel做数据可视化效果吗?

    2021年都要过去啦,你还在用Excel做数据可视化效果吗?古语有云,"工欲善其事,必先利其器",没有专业的工具,前期准备的再好也是白搭.现在运用数据可视化工具于经营活动中的企业是 ...

  4. css做旋转相册效果

    css做旋转相册效果 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  5. 简单JS旋转实现转盘抽奖效果

    闲来没事,做了一个模拟转盘抽奖的HTML&JS的效果: 可以在设置的时候,选择几个区域,并且可以填写指针将要停止的区域 比如,我选择了"区域2",结果就是这样 具体可以见下 ...

  6. 利用background-attachment做视差滚动效果

    视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验.作为今年网页设计的热点趋势,越来越多的网站应用了这项技术. 不明白的可以先看 ...

  7. Deeplink做不出效果,那是你不会玩!

    最近魔Sir听一些有些同学说之前用过Deeplink,但效果并没有想象中的那么好,在了解了小伙伴的使用场景后,魔Sir觉得有必要出这么篇东西告诉大家,Deeplink效果差,那是因为你不会玩! 对于已 ...

  8. 最近比较迷flash professional cc 做PPT,做一个flash做动态打字效果的教程

    想做一个flash打字效果.网上的方法要不是太繁琐,要不然就是各种遗漏.在这边做一个行之有效的flash做打字效果教程. 首先我用的是最新版本的flash professional cc .但是应该和 ...

  9. Flash 用FLASH遮罩效果做图片切换效果

    本教程是关于FLASH应用遮罩效果制作好看的图片切换效果.该教程选用FLASH遮罩中最简单的一种作为例子,当然你可以用自己的想象力来做出更多更好的图片动画.希望本教程能带你带来帮助. 让我们先看看效果 ...

随机推荐

  1. wsdl详解

    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http:// ...

  2. Mac 下 IDEA 中 SpringBoot 如何利用 DevTool 开启热部署

    一.首先 pom.xml 中  依赖 和 构建 部分 二.IDEA 配置 注意这一步一定不要改错地方,认准 IntelliJ IDEA -> Preferences… 三.退出 IDEA 编辑器 ...

  3. IO测试工具之fio详解(转)

    http://www.cnblogs.com/raykuan/p/6914748.html 目前主流的第三方IO测试工具有fio.iometer和Orion,这三种工具各有千秋. fio在Linux系 ...

  4. flutter初探

    这两天看了下flutter,感觉这两年可能会爆发,所以尝试在mac和win10上面跑了下hello world... 移动技术简介 原生开发 跨平台技术简介 H5+原生(Cordova.Ionic.微 ...

  5. bzoj 4961: 除除除

    Description 我们定义一种操作是将一个正整数n(n>1)用某个整数d替换,这个数必须是n的约数(1≤d≤n).给你一个正整数n, 你需要确定操作进行的期望次数,如果我们希望不断地使用这 ...

  6. 6.后台验证码-session作用域

    首先要有生成验证码图片和验证码文字的逻辑 package cn.bingou.util; import java.awt.Color; import java.awt.Font; import jav ...

  7. Appium录制脚本520-2

    1.录制自动化脚本 场景:启动雪球,点击我的,登陆雪球,选择手机及其他登陆,输入手机号 2.使用Java进行测试Appium测试 2.1创建Java工程 file-创建maven工程-填写GroupI ...

  8. 补充 3:Golang 一些特性

    1 丰富的内置类型 2 函数多返回值 3 Go的错误处理 :   Go语言引入了3个关键字用于标准的错误处理流程,这3个关键字分别为defer. panic和 recover 4 在Go语言中,所有的 ...

  9. 图片尺寸批量resize的matlab并行代码

    在caffe ImageNet例子中有对图片进行resize的部分,文中使用的是linux shell脚本命令: for name in /path/to/imagenet/val/*.JPEG; d ...

  10. 第13章 TCP编程(2)_TCP的连接和关闭过程

    4. TCP的连接和关闭过程 4.1 TCP连接的三次握手和四次挥手 (1)三次握手 ①第1次握手:建立连接.客户端发送连接请求报文段(SYN=1,sequence Number=x):然后客户端进入 ...