Heim Web-Frontend js-Tutorial 非常不错的一个javascript 类_javascript技巧

非常不错的一个javascript 类_javascript技巧

May 16, 2016 pm 07:24 PM

非常不错的一个javascript 类

复制代码 代码如下:

/*  
 *  Author:aoao
 *    Homepage:http://www.loaoao.com
 *  Email:loaoao@gmail.com / QQ:2222342
 *  Copyright (c) 2006 aoao
 *  Licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/) 
 */

var jscc = new Object();
var loaoao = new Object();//^_^//
jscc = {    
    init:function(){/*_*/},
    path:"/scripts/jscc/",
    include:function (file){
        var j=document.createElement("script");
        j.setAttribute('type','text/javascript');
        j.setAttribute('src',jscc.path+file+'.js');
        document.getElementsByTagName("head")[0].appendChild(j);
    }
};

jscc.addEvent = function( obj, type, fn ) {
    if ( obj.attachEvent ) {        
      obj['e'+type+fn] = fn;
      obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
      obj.attachEvent( 'on'+type, obj[type+fn] );
    } else {
      obj.addEventListener( type, fn, false );
    }
};
// Cookies
jscc.cookie = {
    create:function (name,value,days) {
      if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
      }
      else expires = "";
      document.cookie = name+"="+value+expires+"; path=/";
    },
    read:function(name) {
      var nameEQ = name + "=";
      var ca = document.cookie.split(';');
      for(var i=0;i         var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
      }
      return null;
    }
};


jscc.getPageSize=function(){
    // reference lightbox (http://www.huddletogether.com/projects/lightbox/lightbox.js)
     var theWidth,theHeight;
    if (window.innerHeight&&window.scrollMaxY) {
        theWidth = window.innerWidth;
        theHeight = window.innerHeight+ window.scrollMaxY;
     } 
    else if (document.body){
        theWidth=((document.body.scrollWidth > document.body.offsetWidth)?document.body.scrollWidth : document.body.offsetWidth );
        theHeight=((document.body.scrollHeight > document.body.offsetHeight)?document.body.scrollHeight  : document.body.offsetHeight );
    }
    var winWidth ,winHeight; 
    if (self.innerHeight) {    
        winWidth = self.innerWidth;
        winHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        winWidth = document.documentElement.clientWidth;
        winHeight = document.documentElement.clientHeight;
    } else if (document.body) {
        winWidth = document.body.clientWidth;
        winHeight = document.body.clientHeight;
    }
    var pWidth=(theWidth>winWidth?theWidth:winWidth)
    var pHeight=(theHeight>winHeight?theHeight:winHeight)

    var yScroll;
    if (self.pageYOffset) {
        yScroll = self.pageYOffset;
    } else if (document.documentElement && document.documentElement.scrollTop){     // Explorer 6 Strict
        yScroll = document.documentElement.scrollTop;
    } else if (document.body) {// all other Explorers
        yScroll = document.body.scrollTop;
    }
    var getPageSize = new Array(pWidth,pHeight,winWidth,winHeight,yScroll) 
    return getPageSize;
}


jscc.widgets = {/**/};
jscc.widgets.fixedsidebar = {
    fixedHeight:0,
    oldScrolltop:0,
    init: function(){
        if (!document.getElementById("sidebar")) return;
        jscc.addEvent(window,"scroll",function(e){jscc.widgets.fixedsidebar.setFixed()});
        jscc.addEvent(window,"resize",function(e){jscc.widgets.fixedsidebar.setFixed()});
        this.fixedHeight=document.getElementById("sidebar").offsetTop;
        this.setFixed();
    },
    setFixed:function(){
        var sidebar=document.getElementById("sidebar");
        var ref=document.getElementById("main");
        var s_t=sidebar.offsetTop;
        var s_h=sidebar.offsetHeight;
        var s_th=s_t+s_h;
        var r_th=ref.offsetTop+ref.offsetHeight;
        var d_st;
        if(document.documentElement.scrollTop){
            d_st=document.documentElement.scrollTop;
        }
        else{
            d_st=document.body.scrollTop
            }
        if(r_th>(s_t+s_h)){
            var seHeight=0; 
            if (self.innerHeight) {    seHeight = self.innerHeight;} else if (document.documentElement && document.documentElement.clientHeight) {    seHeight = document.documentElement.clientHeight;} else if (document.body) {seHeight = document.body.clientHeight;}
            try{
                if(seHeight>s_h){
                    var newtop=(d_st                }
                else{
                // Thank you dron (http://www.ucren.com/)
                switch (d_st-this.oldScrolltop>0)
                    {
                    case true:
                        if (d_st-this.fixedHeight > s_t -seHeight){
                        var    newtop= d_st -this.fixedHeight - (s_h-seHeight)-68;
                        }
                    break;
                    case false:
                        if (d_st-this.fixedHeight                        var newtop= d_st-this.fixedHeight;
                        }
                    break;
                    }
                }
                this.oldScrolltop = d_st;
                if(newtop==undefined){ return;};
                newtop=(newtop                sidebar.style.marginTop= newtop+"px";
            }
            catch(e){
              //alert(e.description);
            }
        }
        else{
            sidebar.style.marginTop="0px";
        }
    }    
};
//jscc.addEvent(window,"load",function(e){jscc.widgets.fixedsidebar.init()});

jscc.widgets.wraphandler = {
    //jscc.widgets.wraphandler reference http://www.collylogic.com/includes/resizer.js (http://www.collylogic.com/?/comments/redesign-notes-1-width-based-layout/)
    init: function() {    
        //if (!document.getElementById) return;
            if( document.getElementById('wrapper').className=="col3"){    
            jscc.wraphandler.setWrapper();
            jscc.addEvent(window,"resize",jscc.wraphandler.setWrapper);
            }
            else{return}
      },
      setWrapper: function() {
       var getPS=jscc.getPageSize();
       var _width=getPS[2];
          if (_width             document.getElementById('wrapper').className = 'col2';
          } else {
            document.getElementById('wrapper').className = 'col3';
          }
          if(document.all) {
            if (_width             document.getElementById('wrapper').style.width="750px"
              } else {
                document.getElementById('wrapper').style.width="auto"
              }              
          }
      }
};
//jscc.addEvent(window,"load",function(e){jscc.widgets.wraphandler.init()});


jscc.widgets.styleSwitcher = {
    // jscc.widgets.styleSwitcher  reference StyleSwitcher functions( written by Paul Sowden http://www.idontsmoke.co.uk/ss/ . For the details, visit ALA: http://www.alistapart.com/stories/alternate/)
    init:function(e) {
        var cookie = jscc.cookie.read("style");
        var title = cookie ? cookie : this.getPreferred();
        title = (title==null?"left":title);
        this.setActive(title);
        var operactioner = document.getElementById("themes").getElementsByTagName("A");
    operactioner[0].onclick=function() {
        jscc.widgets.styleSwitcher.setActive("left");
        return false;
    };
    operactioner[1].onclick=function() {
        jscc.widgets.styleSwitcher.setActive("right");
        return false;
    };
    this.switcher(title);
    },
    setActive:function(title){
        var i, a, main;
          for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
        if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
                a.disabled = true;
                if(a.getAttribute("title") == title) a.disabled = false;
            }
        }
        this.switcher(title);
        //jscc.cookie.create("style", title,"365");    
    },
    getActive:function(){
    var i, a;
    for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");}
      return null;
    },
    getPreferred:function (){
      var i, a;
      for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
        if(a.getAttribute("rel").indexOf("style") != -1
           && a.getAttribute("rel").indexOf("alt") == -1
           && a.getAttribute("title")
           ) return a.getAttribute("title");
      }
      return null;
    },
    switcher:function(theme){
        if(!document.getElementById(["theme_"+theme])) { return;}
        var notheme=(theme=="left"?"right":"left");
        document.getElementById(["theme_"+notheme]).style.display="inline";
        document.getElementById(["theme_"+theme]).style.display="none";
    },
    end:function(e){
      var title = this.getActive();
      jscc.cookie.create("style", title,"365");
    }
};
//jscc.addEvent(window,"load",function(e){jscc.widgets.styleSwitcher.init()});
jscc.addEvent(window,"unload",function(e){jscc.widgets.styleSwitcher.end()});

jscc.widgets.toTop = {
    init:function(){
        document.getElementById("toTop").onclick=function(e){
            jscc.widgets.toTop.set();
            return false;
        }        
    },
    waitTimer:null,
    set:function(){
        var d_st=document.documentElement.scrollTop;
        if(window.navigator.userAgent.indexOf("MSIE")>=1){
            for (var i=d_st; i>10; i-=Math.floor(i/6)){
            window.scrollTo(0,i);
            }
            window.scrollTo(0,10);
        }
        else{
        window.scrollTo(0,Math.floor(d_st / 2));

         if(d_st>10){
                 waitTimer=setTimeout("jscc.widgets.toTop.set()",20);
          }
            else{
                  clearTimeout(waitTimer);
            }
        }
    }
}
jscc.api={
    google:{
        init:function(){
        try{
            var searchControl = new GSearchControl();
        }
            catch(e){
             return;
            }

        var options = new GdrawOptions();
        options.setSearchFormRoot(document.getElementById("googleSearchForm"));
        options.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
         searchControl.setLinkTarget(GSearch.LINK_TARGET_SELF);
        searchControl.setResultSetSize(GSearch.LARGE_RESULTSET);

        var siteSearch = new GwebSearch();
        siteSearch.setUserDefinedLabel("站内搜索");
        siteSearch.setUserDefinedClassSuffix("siteSearch");
        siteSearch.setSiteRestriction("www.loaoao.com");
        searchControl.addSearcher(siteSearch);
        var labSearch = new GwebSearch();
        labSearch.setUserDefinedLabel("嗷嗷的实验室搜索");
        labSearch.setUserDefinedClassSuffix("labSearch");
        labSearch.setSiteRestriction("lab.loaoao.com");
        searchControl.addSearcher(labSearch);
        var wwwSearch = new GwebSearch();
        wwwSearch.setUserDefinedLabel("Google搜索");
        labSearch.setUserDefinedClassSuffix("wwwSearch");
        searchControl.addSearcher(wwwSearch);

        searchControl.draw(document.getElementById("googleSearchResults"), options);
        //    searchControl.execute("css");
        }
    }
}
loaoao.com = function(){
    if (!document.getElementById) return;
    jscc.widgets.styleSwitcher.init();
    jscc.widgets.fixedsidebar.init();
    jscc.widgets.toTop.init();    
    jscc.api.google.init();    


};
jscc.addEvent(window,"load",loaoao.com);

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP-Fehler: Klasse konnte nicht wiederholt deklariert werden, Lösung! PHP-Fehler: Klasse konnte nicht wiederholt deklariert werden, Lösung! Aug 25, 2023 pm 04:13 PM

PHP-Fehler: Klasse konnte nicht wiederholt deklariert werden, Lösung!

Namenskonventionen in PHP: So verwenden Sie die Kamel-Schreibweise für Klassen, Methoden und Variablen Namenskonventionen in PHP: So verwenden Sie die Kamel-Schreibweise für Klassen, Methoden und Variablen Jul 30, 2023 pm 02:43 PM

Namenskonventionen in PHP: So verwenden Sie die Kamel-Schreibweise für Klassen, Methoden und Variablen

Klasse in Java nicht gefunden – Wie löse ich die Ausnahme java.lang.ClassNotFoundException? Klasse in Java nicht gefunden – Wie löse ich die Ausnahme java.lang.ClassNotFoundException? Jun 25, 2023 am 10:37 AM

Klasse in Java nicht gefunden – Wie löse ich die Ausnahme java.lang.ClassNotFoundException?

Verpackungstechnologie und Anwendung in PHP Verpackungstechnologie und Anwendung in PHP Oct 12, 2023 pm 01:43 PM

Verpackungstechnologie und Anwendung in PHP

Wie verwende ich Attribute, um benutzerdefinierte Anmerkungen zu Klassen in PHP8 hinzuzufügen? Wie verwende ich Attribute, um benutzerdefinierte Anmerkungen zu Klassen in PHP8 hinzuzufügen? Oct 18, 2023 am 10:16 AM

Wie verwende ich Attribute, um benutzerdefinierte Anmerkungen zu Klassen in PHP8 hinzuzufügen?

„Einführung in die objektorientierte Programmierung in PHP: Vom Konzept zur Praxis' „Einführung in die objektorientierte Programmierung in PHP: Vom Konzept zur Praxis' Feb 25, 2024 pm 09:04 PM

„Einführung in die objektorientierte Programmierung in PHP: Vom Konzept zur Praxis'

Tipps zur PHP-Code-Kapselung: So verwenden Sie Klassen und Objekte, um wiederverwendbare Codeblöcke zu kapseln Tipps zur PHP-Code-Kapselung: So verwenden Sie Klassen und Objekte, um wiederverwendbare Codeblöcke zu kapseln Jul 29, 2023 pm 11:19 PM

Tipps zur PHP-Code-Kapselung: So verwenden Sie Klassen und Objekte, um wiederverwendbare Codeblöcke zu kapseln

PHP-Abschlussklasse PHP-Abschlussklasse Aug 19, 2023 am 11:01 AM

PHP-Abschlussklasse

See all articles