js右下隅プロンプトボックスを実現する方法

8022 ワード

この例では、jsが右下隅プロンプトボックスを実装する方法について説明します.皆さんの参考にしてください.具体的な実現方法は以下の通りである.
右下隅のヒントボックスを実現するJqueryプラグイン(popup.js)

   //  ie6 fixed     
  
//jQuery(function($j){ 
//    $j('#pop').positionFixed() 
//}) 
(function($j){ 
    $j.positionFixed = function(el){ 
        $j(el).each(function(){ 
            new fixed(this) 
        }) 
        return el;                   
    } 
    $j.fn.positionFixed = function(){ 
        return $j.positionFixed(this) 
    } 
    var fixed = $j.positionFixed.impl = function(el){ 
        var o=this; 
        o.sts={ 
            target : $j(el).css('position','fixed'), 
            container : $j(window) 
        } 
        o.sts.currentCss = { 
            top : o.sts.target.css('top'),               
            right : o.sts.target.css('right'),               
            bottom : o.sts.target.css('bottom'),                 
            left : o.sts.target.css('left')              
        } 
        if(!o.ie6)return; 
        o.bindEvent(); 
    } 
    $j.extend(fixed.prototype,{ 
        ie6 : $.browser.msie && $.browser.version < 7.0, 
        bindEvent : function(){ 
            var o=this; 
            o.sts.target.css('position','absolute') 
            o.overRelative().initBasePos(); 
            o.sts.target.css(o.sts.basePos) 
            o.sts.container.scroll(o.scrollEvent()).resize(o.resizeEvent()); 
            o.setPos(); 
        }, 
        overRelative : function(){ 
            var o=this; 
            var relative = o.sts.target.parents().filter(function(){ 
                if($j(this).css('position')=='relative')return this; 
            }) 
            if(relative.size()>0)relative.after(o.sts.target) 
            return o; 
        }, 
        initBasePos : function(){ 
            var o=this; 
            o.sts.basePos = { 
                top: o.sts.target.offset().top - (o.sts.currentCss.top=='auto'?o.sts.container.scrollTop():0), 
                left: o.sts.target.offset().left - (o.sts.currentCss.left=='auto'?o.sts.container.scrollLeft():0) 
            } 
            return o; 
        }, 
        setPos : function(){ 
            var o=this; 
            o.sts.target.css({ 
                top: o.sts.container.scrollTop() + o.sts.basePos.top, 
                left: o.sts.container.scrollLeft() + o.sts.basePos.left 
            }) 
        }, 
        scrollEvent : function(){ 
            var o=this; 
            return function(){ 
                o.setPos(); 
            } 
        }, 
        resizeEvent : function(){ 
            var o=this; 
            return function(){ 
                setTimeout(function(){ 
                    o.sts.target.css(o.sts.currentCss)       
                    o.initBasePos(); 
                    o.setPos() 
                },1)     
            }            
        } 
    }) 
})(jQuery) 
 
jQuery(function($j){ 
    $j('#footer').positionFixed() 
}) 
 
//pop  
function Pop(title,url,intro){ 
    this.title=title; 
    this.url=url; 
    this.intro=intro; 
    this.apearTime=1000; 
    this.hideTime=500; 
    this.delay=10000; 
    //  
    this.addInfo(); 
    //  
    this.showDiv(); 
    //  
  this.closeDiv(); 

Pop.prototype={ 
  addInfo:function(){ 
    $("#popTitle a").attr('href',this.url).html(this.title); 
    $("#popIntro").html(this.intro); 
    $("#popMore a").attr('href',this.url); 
  }, 
  showDiv:function(time){ 
        if (!($.browser.msie && ($.browser.version == "6.0") && !$.support.style)) { 
      $('#pop').slideDown(this.apearTime).delay(this.delay).fadeOut(400);; 
    } else{// jquery.fixed.js, ie6 fixed 
      $('#pop').show(); 
            jQuery(function($j){ 
                $j('#pop').positionFixed() 
            }) 
    } 
  }, 
  closeDiv:function(){ 
      $("#popClose").click(function(){ 
            $('#pop').hide(); 
          } 
    ); 
  } 
}

右下隅のプロンプトボックスの例

     
  
 
 
     
    jquery pop  
 
 

 
 
  <br>       window.onload=function(){  <br>             var pop=new Pop(" , ",  <br>             "URL ",  <br>             " , . , . , ");  <br>         }  <br>  
 
 
 
 




































































jquery   
 

で べたjavascriptプログラムの に つことを っています.