Advertisement
Guest User

Untitled

a guest
Mar 7th, 2010
720
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //** jQuery Scroll to Top Control script- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com.
  2. //** Available/ usage terms at http://www.dynamicdrive.com (March 30th, 09')
  3. //** v1.1 (April 7th, 09'):
  4. //** 1) Adds ability to scroll to an absolute position (from top of page) or specific element on the page instead.
  5. //** 2) Fixes scroll animation not working in Opera.
  6.  
  7.  
  8. var scrolltotop={
  9.     //startline: Integer. Number of pixels from top of doc scrollbar is scrolled before showing control
  10.     //scrollto: Keyword (Integer, or "Scroll_to_Element_ID"). How far to scroll document up when control is clicked on (0=top).
  11.     setting: {startline:100, scrollto: 0, scrollduration:1000, fadeduration:[500, 100]},
  12.     controlHTML: '<img src="http://wilson.com.sapo.pt/inove/gotop.gif" style="width:29px; height:20px" />', //HTML for control, which is auto wrapped in DIV w/ ID="topcontrol"
  13.     controlattrs: {offsetx:5, offsety:5}, //offset of control relative to right/ bottom of window corner
  14.     anchorkeyword: '#top', //Enter href value of HTML anchors on the page that should also act as "Scroll Up" links
  15.  
  16.     state: {isvisible:false, shouldvisible:false},
  17.  
  18.     scrollup:function(){
  19.         if (!this.cssfixedsupport) //if control is positioned using JavaScript
  20.             this.$control.css({opacity:0}) //hide control immediately after clicking it
  21.         var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto)
  22.         if (typeof dest=="string" && jQuery('#'+dest).length==1) //check element set by string exists
  23.             dest=jQuery('#'+dest).offset().top
  24.         else
  25.             dest=0
  26.         this.$body.animate({scrollTop: dest}, this.setting.scrollduration);
  27.     },
  28.  
  29.     keepfixed:function(){
  30.         var $window=jQuery(window)
  31.         var controlx=$window.scrollLeft() + $window.width() - this.$control.width() - this.controlattrs.offsetx
  32.         var controly=$window.scrollTop() + $window.height() - this.$control.height() - this.controlattrs.offsety
  33.         this.$control.css({left:controlx+'px', top:controly+'px'})
  34.     },
  35.  
  36.     togglecontrol:function(){
  37.         var scrolltop=jQuery(window).scrollTop()
  38.         if (!this.cssfixedsupport)
  39.             this.keepfixed()
  40.         this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false
  41.         if (this.state.shouldvisible && !this.state.isvisible){
  42.             this.$control.stop().animate({opacity:1}, this.setting.fadeduration[0])
  43.             this.state.isvisible=true
  44.         }
  45.         else if (this.state.shouldvisible==false && this.state.isvisible){
  46.             this.$control.stop().animate({opacity:0}, this.setting.fadeduration[1])
  47.             this.state.isvisible=false
  48.         }
  49.     },
  50.    
  51.     init:function(){
  52.         jQuery(document).ready(function($){
  53.             var mainobj=scrolltotop
  54.             var iebrws=document.all
  55.             mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest //not IE or IE7+ browsers in standards mode
  56.             mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body')
  57.             mainobj.$control=$('<div id="topcontrol">'+mainobj.controlHTML+'</div>')
  58.                 .css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', bottom:mainobj.controlattrs.offsety, right:mainobj.controlattrs.offsetx, opacity:0, cursor:'pointer'})
  59.                 .attr({title:'Scroll Back to Top'})
  60.                 .click(function(){mainobj.scrollup(); return false})
  61.                 .appendTo('body')
  62.             if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') //loose check for IE6 and below, plus whether control contains any text
  63.                 mainobj.$control.css({width:mainobj.$control.width()}) //IE6- seems to require an explicit width on a DIV containing text
  64.             mainobj.togglecontrol()
  65.             $('a[href="' + mainobj.anchorkeyword +'"]').click(function(){
  66.                 mainobj.scrollup()
  67.                 return false
  68.             })
  69.             $(window).bind('scroll resize', function(e){
  70.                 mainobj.togglecontrol()
  71.             })
  72.         })
  73.     }
  74. }
  75.  
  76. scrolltotop.init()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement