wp/wp-content/plugins/page-columnist/jquery.spin.js
author ymh <ymh.work@gmail.com>
Mon, 14 Oct 2019 18:28:13 +0200
changeset 9 177826044cd9
parent 0 d970ebf37754
permissions -rw-r--r--
upgrade wordpress to 5.2.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
 *  jquery.spin-button
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 *  (c) 2008 Semooh (http://semooh.jp/)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 *  Dual licensed under the MIT (MIT-LICENSE.txt)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *  and GPL (GPL-LICENSE.txt) licenses.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 **/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
(function($){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
  $.fn.extend({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    spin: function(opt){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
      return this.each(function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
        opt = $.extend({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
            imageBasePath: '/img/spin/',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
            spinBtnImage: 'spin-button.png?v='+Math.random(), //IE fix
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
            spinUpImage: 'spin-up.png?v='+Math.random(), //IE fix
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
            spinDownImage: 'spin-down.png?v='+Math.random(), //IE fix
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
            interval: 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
            max: null,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
            min: null,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
            timeInterval: 300,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
            timeBlink: 100
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
          }, opt || {});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        var txt = $(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
        var spinBtnImage = opt.imageBasePath+opt.spinBtnImage;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        var btnSpin = new Image();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
				$(btnSpin).load(function(){ btn.css({width: btnSpin.width+'px'}); }); //IE fix
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        btnSpin.src = spinBtnImage;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
        var spinUpImage = opt.imageBasePath+opt.spinUpImage;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        var btnSpinUp = new Image();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        btnSpinUp.src = spinUpImage;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        var spinDownImage = opt.imageBasePath+opt.spinDownImage;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        var btnSpinDown = new Image();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        btnSpinDown.src = spinDownImage;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        var btn = $(document.createElement('img'));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        btn.attr('src', spinBtnImage);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        btn.css({cursor: 'pointer', verticalAlign: 'bottom', padding: 0, margin: 0 });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        txt.after(btn);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        txt.css({marginRight:0, paddingRight:0});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
        function spin(vector){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
          var val = txt.val();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
          if(!isNaN(val)){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
            val = parseFloat(val) + (vector*opt.interval);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
            if(opt.min!=null && val<opt.min) val=opt.min;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
            if(opt.min!=null && val>opt.max) val=opt.max;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            if(val != txt.val()){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
              txt.val(val);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
              txt.change();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
              src = (vector > 0 ? spinUpImage : spinDownImage);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
              btn.attr('src', src);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
              if(opt.timeBlink<opt.timeInterval)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
                setTimeout(function(){btn.attr('src', spinBtnImage);}, opt.timeBlink);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
        btn.mousedown(function(e){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
          var pos = e.pageY - btn.offset().top + $(document.body).offset().top;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
          var vector = (btn.height()/2 > pos ? 1 : -1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
          (function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
            spin(vector);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            var tk = setTimeout(arguments.callee, opt.timeInterval);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
            $(document).one('mouseup', function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
              clearTimeout(tk); btn.attr('src', spinBtnImage);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
            });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
          })();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
        });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
      });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
  });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
})(jQuery);