diff --git a/prive/javascript/ajaxCallback.js b/prive/javascript/ajaxCallback.js index 658a308a2b95e5c9e2d562f8681891e442695732..172fa0ff1482f911a1ec383ec922c648d4c306c4 100644 --- a/prive/javascript/ajaxCallback.js +++ b/prive/javascript/ajaxCallback.js @@ -171,23 +171,27 @@ jQuery.getScript = function(url,callback){ /** * if not fully visible, scroll the page to position * target block at the top of page - * if force = true, allways scroll + * if force = true, always scroll * * @param bool force */ jQuery.fn.positionner = function(force, setfocus) { var offset = jQuery(this).offset(); var hauteur = parseInt(jQuery(this).css('height')); + var marge = jQuery.spip.positionner_marge || 5; var scrolltop = self['pageYOffset'] || jQuery.boxModel && document.documentElement[ 'scrollTop' ] || document.body[ 'scrollTop' ]; var h = jQuery(window).height(); var scroll=0; - if (force || (offset && offset['top'] - 5 <= scrolltop)) - scroll = offset['top'] - 5; - else if (offset && offset['top'] + hauteur - h + 5 > scrolltop) - scroll = Math.min(offset['top'] - 5, offset['top'] + hauteur - h + 15); + if (force || (offset && offset['top'] - marge <= scrolltop)) { + scroll = offset['top'] - marge; + } + else if (offset && offset['top'] + hauteur - h + marge > scrolltop) { + scroll = Math.min(offset['top'] - marge - 15, offset['top'] + hauteur - h + 40); + } + if (scroll) jQuery('html,body') .animate({scrollTop: scroll}, 300); @@ -1064,5 +1068,4 @@ onAjaxLoad(function() { jQuery("input[placeholder]:text",this).placeholderLabel(); jQuery('.spip_logo_survol',this).hover(spip_logo_survol_hover, spip_logo_survol_out); } -}); - +}); \ No newline at end of file