jscroller.0.3.js
上传用户:saigedz
上传日期:2019-10-14
资源大小:997k
文件大小:4k
源码类别:

中间件编程

开发平台:

HTML/CSS

  1. /*
  2.  * jScroller 0.3 - Scroller Script
  3.  *
  4.  * Copyright (c) 2007 Markus Bordihn (http://markusbordihn.de)
  5.  * Dual licensed under the MIT (MIT-LICENSE.txt)
  6.  * and GPL (GPL-LICENSE.txt) licenses.
  7.  *
  8.  * $Date: 2007-11-15 13:00:00 +0100 (Thu, 15 Nov 2007) $
  9.  * $Rev: 0.3 $
  10.  */
  11. $(document).ready(function(){
  12.    this.defaults = {
  13.      scroller: {
  14.        interval:  0,    // Dont touch !
  15.        refresh:   150,  // Refresh Time in ms
  16.        direction: "up", // down,right,left,up
  17.        speed:     1,    // Set the Scroller Speed
  18.        id:        "#scroller",
  19.        cont_id:   "#scroller_container"
  20.      }
  21.    }
  22.    var jscroller_config = $.extend(this.defaults), jscroller_scroller = $(jscroller_config.scroller.id), jscroller_scroller_cont = $(jscroller_config.scroller.cont_id);
  23.    
  24.    if (jscroller_scroller && jscroller_scroller_cont) {
  25.       jscroller_scroller.css({position: 'absolute', left: 0, top: 0});
  26.       jscroller_init();
  27.    }
  28.    function jscroller_startScroll() {
  29.      if(!jscroller_config.scroller.interval) {
  30.       jscroller_config.scroller.interval=window.setInterval(jscroller_doScroll,jscroller_config.scroller.refresh);
  31.      }
  32.    }
  33.    function jscroller_stopScroll() {
  34.      if (jscroller_config.scroller.interval) {
  35.       window.clearInterval(jscroller_config.scroller.interval);
  36.       jscroller_config.scroller.interval=0;
  37.      }
  38.    }
  39.    function jscroller_init() {
  40.     $("#scroller a").click(function(){
  41.       window.open(this.href);
  42.       return false;
  43.     });
  44.     jscroller_scroller_cont.css('overflow','hidden');
  45.     if(!jscroller_config.scroller.interval) { 
  46.       if (window.attachEvent) {
  47.        window.attachEvent("onfocus", jscroller_startScroll);
  48.        window.attachEvent("onblur",  jscroller_stopScroll);
  49.        window.attachEvent("onresize", jscroller_startScroll);
  50.        window.attachEvent("onscroll", jscroller_startScroll);
  51.       }
  52.       else if (window.addEventListener) {
  53.        window.addEventListener("focus", jscroller_startScroll, false);
  54.        window.addEventListener("blur",  jscroller_stopScroll, false);
  55.        window.addEventListener("resize", jscroller_startScroll, false);
  56.        window.addEventListener("scroll", jscroller_startScroll, false);
  57.       }
  58.       jscroller_startScroll();
  59.       if ($.browser.msie) {window.focus()}
  60.      }
  61.    }
  62.    function jscroller_getElem(Elem) {
  63.     return (typeof Elem == "string" && document.getElementById)? document.getElementById(Elem) : Elem;
  64.    }
  65.    function jscroller_doScroll() {
  66.     if (scroller_dom = jscroller_getElem(jscroller_scroller.attr("id"))) {
  67.      var
  68.       p_top= Number((/[0-9-,.]+/.exec(jscroller_scroller.css('top'))||0)),
  69.       p_left=Number((/[0-9-,.]+/.exec(jscroller_scroller.css('left'))||0)),
  70.       min_height=jscroller_scroller_cont.height(),
  71.       min_width=jscroller_scroller_cont.width(),
  72.       speed=jscroller_config.scroller.speed,
  73.       p_height=scroller_dom.offsetHeight,
  74.       p_width=scroller_dom.offsetWidth,
  75.       direction=jscroller_config.scroller.direction,
  76.       jscroller=jscroller_scroller;
  77.      switch(direction) {
  78.        case 'up':
  79.         if (p_top <= -1*p_height) {p_top=min_height;}
  80.         jscroller.css('top',p_top-speed+'px');
  81.        break;
  82.        case 'right':
  83.         if (p_left >= min_width) {p_left=-1*p_width;}
  84.         jscroller.css('left',p_left+speed+'px');
  85.        break;
  86.        case 'left':
  87.         if (p_left <= -1*p_width) {p_left=min_width;}
  88.         jscroller.css('left',p_left-speed+'px');
  89.        break;
  90.        case 'down':
  91.         if (p_top >= min_height) {p_top=-1*p_height;}
  92.         jscroller.css('top',p_top+speed+'px');
  93.        break;
  94.      }
  95.     }
  96.    }
  97. });