js数字自执行随机滚动
每三秒执行一次,若是需要触发执行,可添加一个单击事件.
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title></title>
<style type="text/css">
.textC {
position: absolute;
width: 500px;
overflow: hidden;
margin-top: 100px;
line-height: 30px;
margin-left: 300px;
height: 30px;
}
.textC span {
color: #13BEEC;
font-size: 28px;
font-weight: bold;
position: absolute;
}</style>
<script src="jquery-3.2.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
NumbersAnimate.Target = $(".textC");
NumbersAnimate.Numbers = 12389623;
NumbersAnimate.Duration = 1500;
NumbersAnimate.Animate();
});
var NumbersAnimate = {
Target: null,
Numbers: 0,
Duration: 500,
Animate: function () {
var array = NumbersAnimate.Numbers.toString().split("");
//遍历数组
for (var i = 0; i < array.length; i++) {
var currentN = array[i];
//数字append进容器
var t = $("<span></span>");
$(t).append("<span class=\"childNumber\">" + array[i] + "</span>");
$(t).css("margin-left", 18 * i + "px");
$(NumbersAnimate.Target).append(t);
//生成滚动数字,根据当前数字大小来定
for (var j = 0; j <= currentN; j++) {
var tt;
if (j == currentN) {
tt = $("<span class=\"main\"><span>" + j + "</span></span>");
} else {
tt = $("<span class=\"childNumber\">" + j + "</span>");
}
$(t).append(tt);
$(tt).css("margin-top", (j + 1) * 25 + "px");
}
$(t).animate({marginTop: -((parseInt(currentN) + 1) * 25) + "px"}, NumbersAnimate.Duration, function () {
$(this).find(".childNumber").remove();
});
}
},
ChangeNumber: function (numbers) {
var oldArray = NumbersAnimate.Numbers.toString().split("");
var newArray = numbers.toString().split("");
for (var i = 0; i < oldArray.length; i++) {
var o = oldArray[i];
var n = newArray[i];
if (o != n) {
var c = $($(".main")[i]);
var num = parseInt($(c).html());
var top = parseInt($($(c).find("span")[0]).css("marginTop").replace('px', '')); for (var j = 0; j <= n; j++) {
var nn = $("<span>" + j + "</span>");
if (j == n) {
nn = $("<span>" + j + "</span>");
} else {
nn = $("<span class=\"yy\">" + j + "</span>");
}
$(c).append(nn);
$(nn).css("margin-top", (j + 1) * 25 + top + "px");
}
var margintop = parseInt($(c).css("marginTop").replace('px', ''));
$(c).animate({marginTop: -((parseInt(n) + 1) * 25) + margintop + "px"}, NumbersAnimate.Duration, function () {
$($(this).find("span")[0]).remove();
$(".yy").remove();
});
}
}
NumbersAnimate.Numbers = numbers;
}, RandomNum: function (m, a) {
var Range = a - m;
var Rand = Math.random();
return (m + Math.round(Rand * Range));
}
}
$(function () {
setInterval(function () {
NumbersAnimate.ChangeNumber(NumbersAnimate.RandomNum(10000000, 19999999));
console.log(11);
}, 3000)
})
</script>
</head>
<body>
</body>
</html>
js数字自执行随机滚动的更多相关文章
- 通过JS生成由字母与数字组合的随机字符串
在项目中可能需要随机生成字母数字组成的字符,如生成3-32位长度的字母数字组合的随机字符串(位数不固定)或者生成43位随机字符串(位数固定) 使用Math.random()与toString()方法的 ...
- JS图片自动或者手动滚动效果(支持left或者up)
JS图片自动或者手动滚动效果(支持left或者up) JS图片自动或者手动滚动效果 在谈组件之前 来谈谈今天遇到搞笑的事情,今天上午接到一个杭州电话 0571-28001187 即说是杭州人民法院的 ...
- js代码的执行顺序及运算
代码执行顺序:从上往下,一行一行的执行(也叫一个模块一个模块的执行) 变量的提升(它不是变量的功能,而是浏览器的功能) js代码如何执行? js代码执行前,浏览器会给他一个全局的环境 叫window, ...
- php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)
php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...
- (转载)js引擎的执行过程(二)
概述 js引擎执行过程主要分为三个阶段,分别是语法分析,预编译和执行阶段,上篇文章我们介绍了语法分析和预编译阶段,那么我们先做个简单概括,如下: 语法分析: 分别对加载完成的代码块进行语法检验,语法正 ...
- js数字位数太大导致参数精度丢失问题
最近遇到个比较奇怪的问题,js函数里传参,传一个位数比较大,打印arguments可以看到传过来的参数已经改变. 然后查了一下,发现确实是js精度丢失造成的.我的解决方法是将数字型改成字符型传输,这样 ...
- 超简单的js数字验证
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- JS数字键盘
JS数字键盘,JS小键盘 CSS代码: #numberkeyboard { border: 1px solid #b3b3b3; background: #f2f3f7; height: 285px; ...
- Headroom.js – 快速响应用户的页面滚动操作
Headroom.js 是一个轻量级,高性能的JS插件(无依赖性!),允许你响应用户的滚动行为.Headroom.js 使您能够在适当的时候把元素融入视图,而其它时候让内容成为焦点.Headroom. ...
随机推荐
- 用mint-ui picker组件 实现省市区三级联动
公司上一期项目中新增了省市区滑动三级联动效果,用的是mint-ui的picker组件和popup组件,效果如下:点击确定换地区,点击取消不变 省市区数据是后台给的(根据上一级的id,获取下一级数据列表 ...
- Python3 tkinter基础 OptionMenu 将list导入下拉列表中
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Progressive Scramble【模拟】
问题 J: Progressive Scramble 时间限制: 1 Sec 内存限制: 128 MB 提交: 108 解决: 45 [提交] [状态] [命题人:admin] 题目描述 You ...
- Linux——入门命令
授课内容: 0.linux系统由来 linux各种常用命令以及对命令参数选项的熟悉: 1.目录操作命令([跳转:查看自己当下的位置-绝对路径:查看任何路径下的目录内容]pwd(Print Workin ...
- react-native android 运行命令
debug模式运行 sudo react-native run-android release模式运行 sudo react-native run-android --variant=release ...
- HRBUST 1186 青蛙过河 (思路错了)
在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串 ...
- windows图形图像桌面消失(误删.net组件)
核心模式core 变回完整模式 Full,用dism命令,具体命令如下 dism /online /enable-feature /all /featurename:servercore-fullse ...
- 5种网络IO模型(有图,很清楚)
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出 ...
- Mysql5.7出现this is incompatible with sql_mode=only_full_group_by
vi /etc/my.cnf #编辑mysql配置文件 在 [mysqld]和[mysql]下添加 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZE ...
- 若依项目整合eCharts实现图表统计功能
eCharts是一款强大的图表统计工具,具体介绍可查看其官网 http://echarts.baidu.com/echarts2/index.html 下面记录一下如何在若依项目中使用eCharts. ...