jquery实现数字滚动效果

网页上如果有数字需要经常变动,又想让它比较明显,肯定是加个动画比较显眼,利用jquery的animate可以很容易的实现,不需要css3,因此可以兼容低版本的ie浏览器。先看效果图:

代码比较简单,没有整理成插件形式,暂时全堆在html里了。直接上代码:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <title>演示</title>
    <script src="jquery-1.7.1.min.js"></script>
    <style>
    .digits{
        display:inline-block;
        height:30px;
        margin-right:50px;
    }
    .digits i{
        background:url(numbers.png) no-repeat;
        display:inline-block;
        float:left;
        height:30px;
        width:18px;
    }
    .digits b{
        background:url(numbers.png) no-repeat 0 -398px;
        display:inline-block;
        float:left;
        height:30px;
        width:10px;
    }
    </style>
    <script>
    function setNumber(dom, number){
        var n = String(number),len = n.length;

        //如果新的数字短于当前的,要移除多余的i
        if(dom.find("i").length > len){
            dom.find("i:gt(" + (len - 1) + ")").remove();
        }
        
        //移除千分位分隔符
        dom.find("b").remove();

        //开始填充每一位
        for(var i=0;i<len;++i){
            //位数不足要补
            if(dom.find("i").length < len){
                dom.append("<i></i>");
            }
            var obj = dom.find("i").eq(i);
            var y = -40 * parseInt(n.charAt(i), 10);

            //加分隔符
            if(i < len - 1 && (len - i - 1) % 3 == 0)
                $("<b></b>").insertAfter(obj);

            //利用动画变换数字
            obj.animate({ backgroundPositionY:y+"px" }, 350);
        }
    };

    $(function(){
        //测试,每秒更新随机数
        window.setInterval(function(){
            setNumber($("#a"), Math.floor(Math.random() * 1000000));
            setNumber($("#b"), Math.floor(Math.random() * 1000000));
        }, 1000);
    });
</script>
</head>
<body>
    <div id="a" class="digits"></div>
    <div id="b" class="digits"></div>
</body>
</html>

代码与资源放在附件里了。

时间: 2024-08-28 09:30:09

jquery实现数字滚动效果的相关文章

jQuery自定义数字滚动效果

每日分享效果时间到,今日分享:jQuery自定义数字滚动效果 效果图: 一.html代码 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> <!--优先

数字滚动效果(CSS3 transition属性)

效果:初始化加载+定时刷新增加数值 相关代码: 容器: <h2>不循环样式</h2> <!-- 任意一个非行内元素就可以当做容器,绑定id 或 class ,必须设置容器的高度 height,因为每个数字的高度是由容器的高度决定所以容器的高度必须要设置的 --> <div class="scroll-number-0"></div> 引入js文件: <script type="text/javascript&q

jQuery 随滚动条滚动效果 (适用于内容页长文章)

直接入题! 当内容页比较长的时候,网站右侧一直是空白,不如放点有用的东西给用户看,最好不要放广告,因为那样很邪恶,你懂的. 好吧,昨天写了这个东西,jQuery滚动随动区块,代码如下: //侧栏随动 var rollStart = $('.feed-mail'), //滚动到此区块的时候开始随动 rollOut = $('.cookie-list'); //隐藏rollStart之后的区块 rollStart.before('<div class="da_rollbox">

jQuery 随滚动条滚动效果 (固定版)

//侧栏随动 var rollStart = $('.feed-mail'), //滚动到此区块的时候开始随动 rollSet = $('.search,.weibo,.group,.feed-mail,.tags'); //添加rollStart之前的随动区块 rollStart.before('<div class="da_rollbox" style="position:fixed;background-color:#fff;width:inherit;"

简单的jQuery无缝向上滚动效果

html <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><title>简单的jQuery无缝向上滚动效果演示1_dowebok</title><style>* { margin: 0; padding: 0;}.myscroll { width: 300px; height: 260px; margin:

JQuery实现数字滚动增加的效果

因为项目要求,要做一个数字滚动增加的效果.在网上没有找到好的插件,所以就自己做了一个,供大家参考. 先来看一下效果,看看你们需不需要: 这个动画效果,只支持8位数字(包括小数点后两位),需要其他的,可以自己看看修改一下 先上html代码: <div class="flip"> <div class="price-icon">¥</div> <div class="price-div"> <di

jquery文字纵向滚动效果(带间隔停留)

<script type="text/javascript"> //文字纵向滚动 $(function() { var $this = $("#quotation"); var scrollTimer; $this.hover(function() { clearInterval(scrollTimer); }, function() { scrollTimer = setInterval(function() { scrollNews($this);

jQuery实现产品滚动效果

html: <div class="win_list_b"> <div class="scroll" style="height: 198px; overflow: hidden; position: relative;"> <ul class="win_list" style="position: absolute; top: -123px;"> <li>1

jquery实现 数字变化效果

一. 装修预算报价为  4476  元 材料费  1119 元 人工费  1119 元 设计费  1119 元 质检费  1119 元 代码: setInterval(function () { var material=Math.random()*(2000-1119+1)+1119; material=Math.round(material); $(".material").html(material); var people=Math.random()*(2000-1119+1)