html 跑马灯效果 源代码,跑马灯效果.html

跑马灯效果

table .pao {

border: 1px solid #e5e5e5;

padding: 10px 20px;

}

table .on {

border-color: red;

color: red;

}

window.onload = function() {

var paomadeng = {

currentIndex: 1, //当前索引

indexCount: 12, //个数

timer: 0, //定时器

currentCycle: 0, //当前圈数

cycles: 4, //跑的圈数

speed: 400, //速度,即定时器的时间间隔

key: 0, //钥匙,随机数

btn: 0, //触发按钮

classPrefix: "pao-", //元素类名class前缀

reset: function() {

//触发对象

paomadeng.btn = this;

paomadeng.btn.style.display = "none";

clearInterval(paomadeng.timer);

paomadeng.currentCycle = 0;

paomadeng.speed = 400;

paomadeng.key = Math.ceil(Math.random() * paomadeng.indexCount);

console.log("key:" + paomadeng.key);

paomadeng.run();

},

run: function() {

console.log("speed:" + paomadeng.speed);

var before = paomadeng.currentIndex == 1 ? paomadeng.indexCount : paomadeng.currentIndex - 1;

//设置上一索引的类名

var beforeNode = document.getElementsByClassName(paomadeng.classPrefix + before)[0];

var beforeClassNewName = beforeNode.className.replace("on", "");

beforeNode.className = beforeClassNewName;

//设置当前索引的类名

var currentNode = document.getElementsByClassName(paomadeng.classPrefix + paomadeng.currentIndex)[0];

currentNode.className += " on"; //注意前面有空格

paomadeng.upSpeed();

paomadeng.downSpeed();

paomadeng.currentIndex += 1;

paomadeng.currentIndex = paomadeng.currentIndex > paomadeng.indexCount ? 1 : paomadeng.currentIndex;

},

//加速

upSpeed: function() {

//前2圈且speed>100时加速

if (paomadeng.currentCycle < 2 && paomadeng.speed > 100) {

paomadeng.speed -= 5 * paomadeng.currentIndex;

paomadeng.stop();

paomadeng.start();

}

},

//增加圈数 并 减速

downSpeed: function() {

//增加圈数

if (paomadeng.currentIndex == paomadeng.indexCount) {

paomadeng.currentCycle += 1;

}

//如果当前所跑圈数小于总圈数-1 并且 速度小于400,那么减速

if (paomadeng.currentCycle > paomadeng.cycles - 1 && paomadeng.speed < 400) {

paomadeng.speed += 20;

paomadeng.stop();

paomadeng.start();

}

//如果当前所跑圈数大于总圈数 且 索引值等于key,那么停止奔跑

if (paomadeng.currentCycle > paomadeng.cycles && paomadeng.currentIndex == paomadeng.key) {

paomadeng.stop();

paomadeng.showPrize();

}

},

stop: function() {

clearInterval(paomadeng.timer);

},

start: function() {

paomadeng.timer = setInterval(paomadeng.run, paomadeng.speed);

},

showPrize: function() {

//过一会再显示提示信息

setTimeout(function() {

alert("恭喜,你中了" + paomadeng.key + "等奖");

paomadeng.btn.style.display = "block";

}, 700);

}

};

document.getElementById("startPao").onclick = paomadeng.reset;

};

1234
125
116
10987

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值