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"/>
    <!--优先使用 IE 最新版本和 Chrome-->
    <meta name="renderer" content="webkit"/>
    <meta name="keywords" content="Title"/>
    <link href="css/globle.css" rel="stylesheet">

    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/num.js"></script>

    <title>数字滚动</title>
</head>
<body>

    <div id="dataNums"> </div>
    <div id="dataNums2"> </div>

<script>
    $(function(){
        $("#dataNums").rollNumDaq({
            deVal:16888
        });

    });
</script>

</body>
</html>

二、css代码

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, dd, dl, dt, li, ol, ul,input,select,button,textarea,tr,td{ padding:0; margin:0; border:none;}
input,button,select,textarea,a,img{outline:none; }
::-moz-focus-inner{border:0px;}
body,html{ width:100%; font-family:"Microsoft YaHei","Arial", "SimSun";}
ul, ul li, ol li, li {  list-style:none;}
a, img, input, textarea {border:none;}
a {
    text-decoration: none;
}
table { border-collapse: collapse;border-spacing:0;}
.clearfix:after {visibility: hidden;display: block;font-size: 0;content: ".";clear: both;height: 0;}
* html .clearfix {zoom: 1;}
*:first-child + html .clearfix {zoom: 1;}
.fl {   float:left;}
.fr {   float:right;}
.none{  display:none;}

.inrow{font-size:0;[;font-size:12px;];*font-size:0;font-family:arial;[;letter-spacing:-3px;];*letter-spacing:normal;*word-spacing:-1px;}
.inrow>li,.inrow span{display:inline-block;*display:inline;*zoom:1;font-size:14px;letter-spacing:normal;word-spacing:normal; }
.dataNums{position: absolute; top:50%; display: block; width:100%; height:75px; margin-top: -37px; text-align:center;}
.dataNums .dataOne{ width:61px; height:75px; margin: 0px 3px; text-align: center; background: url(../images/num-bg.png) no-repeat;}
.dataNums .dataBoc {position: relative; width: 100%; height: 100%; overflow: hidden;}
.dataNums .dataBoc .tt {position: absolute; top: 0;  left: 0; width: 100%;  height: 100%;}
.dataNums .tt span{width:100%;height:100%; font:bold 54px/75px "Arial";color:#ddf0ff;}

三、js代码

//数字滚动
;(function($, window, document) {
    "use strict";
    var defaults = {
        deVal: 0,       //传入值
        className:‘dataNums‘,   //样式名称
        digit:‘‘    //默认显示几位数字
    };
    function rollNumDaq(obj, options){
        this.obj = obj;
        this.options = $.extend(defaults, options);
        this.init = function(){
             this.initHtml(obj,defaults);
        }
    }
    rollNumDaq.prototype = {
        initHtml: function(obj,options){
            var strHtml = ‘<ul class="‘ + options.className + ‘ inrow">‘;
            var valLen = options.digit ||  (options.deVal + ‘‘).length;
            if(obj.find(‘.‘+options.className).length <= 0){
                for(var i = 0; i<  valLen; i++){
                    strHtml += ‘<li class="dataOne "><div class="dataBoc"><div class="tt" t="38"><span class="num0">0</span> <span class="num1">1</span> <span class="num2">2</span> <span class="num3">3</span> <span class="num4">4</span><span class="num5">5</span> <span class="num6">6</span> <span class="num7">7</span> <span class="num8">8</span> <span class="num9">9</span><span class="num0">0</span> <span class="num1">1</span> <span class="num2">2</span> <span class="num3">3</span> <span class="num4">4</span><span class="num5">5</span> <span class="num6">6</span> <span class="num7">7</span> <span class="num8">8</span> <span class="num9">9</span></div></div></li>‘;
                }
                strHtml += ‘</ul>‘;
                obj.html(strHtml);
            }
            this.scroNum(options);
        },
        scroNum: function(options){
            var number = options.deVal;
            var $num_item = $(‘.‘ + options.className).find(‘.tt‘);
            var h = $(‘.dataBoc‘).height();
            $num_item.css(‘transition‘,‘all 2s ease-in-out‘);
            var numberStr = number.toString();
            if(numberStr.length <= $num_item.length - 1){
                var tempStr = ‘‘;
                for(var a = 0; a < $num_item.length - numberStr.length; a++){
                    tempStr += ‘0‘;
                }
                numberStr = tempStr + numberStr;
            }

            var numberArr = numberStr.split(‘‘);
            $num_item.each(function(i, item) {
                setTimeout(function(){
                    $num_item.eq(i).css(‘top‘,-parseInt(numberArr[i])*h - h*10 + ‘px‘);
                },i*100)
            });
        }
    }
    $.fn.rollNumDaq = function(options){
        var $that = this;
        var rollNumObj = new rollNumDaq($that, options);
        rollNumObj.init();
    };
})(jQuery, window, document);

原文地址:https://blog.51cto.com/14535203/2441305

时间: 2024-10-10 19:55:36

jQuery自定义数字滚动效果的相关文章

jquery实现数字滚动效果

网页上如果有数字需要经常变动,又想让它比较明显,肯定是加个动画比较显眼,利用jquery的animate可以很容易的实现,不需要css3,因此可以兼容低版本的ie浏览器.先看效果图: 代码比较简单,没有整理成插件形式,暂时全堆在html里了.直接上代码: <!DOCTYPE html> <html lang="zh-cn"> <head>     <meta charset="utf-8">     <title

数字滚动效果(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)