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 8var 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: '<i class="fa fa-arrow-circle-up btnHome hvr-grow scroll-to-top"></i>', //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 } else if (this.state.shouldvisible == false && this.state.isvisible) { 45 this.$control.stop().animate({opacity: 0}, this.setting.fadeduration[1]) 46 this.state.isvisible = false 47 } 48 }, 49 50 init: function () { 51 jQuery(document).ready(function ($) { 52 var mainobj = scrolltotop 53 var iebrws = document.all 54 mainobj.cssfixedsupport = !iebrws || iebrws && document.compatMode == "CSS1Compat" && window.XMLHttpRequest //not IE or IE7+ browsers in standards mode 55 mainobj.$body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html') : $('body')) : $('html,body') 56 mainobj.$control = $('<div id="topcontrol">' + mainobj.controlHTML + '</div>') 57 .css({ 58 position: mainobj.cssfixedsupport ? 'fixed' : 'absolute', 59 bottom: mainobj.controlattrs.offsety, 60 right: mainobj.controlattrs.offsetx, 61 opacity: 0, 62 cursor: 'pointer' 63 }) 64 .attr({title: ''}) 65 .click(function () { 66 mainobj.scrollup(); 67 return false 68 }) 69 .appendTo('body') 70 if (document.all && !window.XMLHttpRequest && mainobj.$control.text() != '') //loose check for IE6 and below, plus whether control contains any text 71 mainobj.$control.css({width: mainobj.$control.width()}) //IE6- seems to require an explicit width on a DIV containing text 72 mainobj.togglecontrol() 73 $('a[href="' + mainobj.anchorkeyword + '"]').click(function () { 74 mainobj.scrollup() 75 return false 76 }) 77 $(window).bind('scroll resize', function (e) { 78 mainobj.togglecontrol() 79 }) 80 }) 81 } 82} 83 84scrolltotop.init()
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.