The forum of the forums

Would you like to react to this message? Create an account in a few clicks or log in to continue.
The forum of the forums
3 posters

    Scroll to Top

    Viserys
    Viserys
    New Member


    Male Posts : 4
    Reputation : 1
    Language : English

    Solved Scroll to Top

    Post by Viserys Fri 22 Feb - 15:16

    Looking to implement a scrolling to "top button".

    Example: http://www.animeinspirations.com/

    My forum: http://forums.animeinspirations.com/

    Not sure what I am doing wrong, if I am implementing the code incorrectly or if the javascript is written wrong.

    Board Version: phpBB3

    Code:
    //** jQuery Scroll to Top Control script- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com.
    //** Available/ usage terms at http://www.dynamicdrive.com (March 30th, 09')
    //** v1.1 (April 7th, 09'):
    //** 1) Adds ability to scroll to an absolute position (from top of page) or specific element on the page instead.
    //** 2) Fixes scroll animation not working in Opera.


    var scrolltotop={
       //startline: Integer. Number of pixels from top of doc scrollbar is scrolled before showing control
       //scrollto: Keyword (Integer, or "Scroll_to_Element_ID"). How far to scroll document up when control is clicked on (0=top).
       setting: {startline:100, scrollto: 0, scrollduration:1000, fadeduration:[500, 100]},
       controlHTML: '<img src="http://4.bp.blogspot.com/-4EhTTBYpH7I/UQxorsZeTGI/AAAAAAAAChc/fFJupss47cA/s1600/jquery_scroll_icon.png" style="width:48px; height:48px" />', //HTML for control, which is auto wrapped in DIV w/ ID="topcontrol"
       controlattrs: {offsetx:5, offsety:5}, //offset of control relative to right/ bottom of window corner
       anchorkeyword: '#top', //Enter href value of HTML anchors on the page that should also act as "Scroll Up" links

       state: {isvisible:false, shouldvisible:false},

       scrollup:function(){
          if (!this.cssfixedsupport) //if control is positioned using JavaScript
             this.$control.css({opacity:0}) //hide control immediately after clicking it
          var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto)
          if (typeof dest=="string" && jQuery('#'+dest).length==1) //check element set by string exists
             dest=jQuery('#'+dest).offset().top
          else
             dest=0
          this.$body.animate({scrollTop: dest}, this.setting.scrollduration);
       },

       keepfixed:function(){
          var $window=jQuery(window)
          var controlx=$window.scrollLeft() + $window.width() - this.$control.width() - this.controlattrs.offsetx
          var controly=$window.scrollTop() + $window.height() - this.$control.height() - this.controlattrs.offsety
          this.$control.css({left:controlx+'px', top:controly+'px'})
       },

       togglecontrol:function(){
          var scrolltop=jQuery(window).scrollTop()
          if (!this.cssfixedsupport)
             this.keepfixed()
          this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false
          if (this.state.shouldvisible && !this.state.isvisible){
             this.$control.stop().animate({opacity:1}, this.setting.fadeduration[0])
             this.state.isvisible=true
          }
          else if (this.state.shouldvisible==false && this.state.isvisible){
             this.$control.stop().animate({opacity:0}, this.setting.fadeduration[1])
             this.state.isvisible=false
          }
       },
       
       init:function(){
          jQuery(document).ready(function($){
             var mainobj=scrolltotop
             var iebrws=document.all
             mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest //not IE or IE7+ browsers in standards mode
             mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body')
             mainobj.$control=$('<div id="topcontrol">'+mainobj.controlHTML+'</div>')
                .css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', bottom:mainobj.controlattrs.offsety, right:mainobj.controlattrs.offsetx, opacity:0, cursor:'pointer'})
                .attr({title:'Scroll Back to Top'})
                .click(function(){mainobj.scrollup(); return false})
                .appendTo('body')
             if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') //loose check for IE6 and below, plus whether control contains any text
                mainobj.$control.css({width:mainobj.$control.width()}) //IE6- seems to require an explicit width on a DIV containing text
             mainobj.togglecontrol()
             $('a[href="' + mainobj.anchorkeyword +'"]').click(function(){
                mainobj.scrollup()
                return false
             })
             $(window).bind('scroll resize', function(e){
                mainobj.togglecontrol()
             })
          })
       }
    }

    scrolltotop.init()


    I don't necessarily need the javascript, but its probably required to have the floating image that scrolls with the page. Additionally, if someone has a fix to implement a static scroll to top (basic click this link, sends you to top of page kind of deal) that can be attached to an image (near the footer for example) that would work as well.

    I realize this is a tricky one, appreciate any support.

    Works. Much appreciated.


    Last edited by Viserys on Sat 23 Feb - 1:48; edited 1 time in total
    Sir Chivas™
    Sir Chivas™
    Helper
    Helper


    Male Posts : 6980
    Reputation : 457
    Language : EN, FR, ES
    Location : || CSS || HTML || Graphics Designs || Support ||

    Solved Re: Scroll to Top

    Post by Sir Chivas™ Fri 22 Feb - 15:26

    Hi,

    I think this would be easier and cleaner.
    http://www.csshelp.net/t45-how-to-put-scroll-to-top-with-jquery-on-your-forum

    Regards,
    Sir Chivas.
    Jophy
    Jophy
    ForumGuru


    Male Posts : 17922
    Reputation : 836
    Language : English
    Location : Somewhere

    Solved Re: Scroll to Top

    Post by Jophy Sat 23 Feb - 11:59

    Since this was marked solved...

    Topic Solved & Locked

      Current date/time is Wed 13 Nov - 19:42