---
title: "Tweaka det här scriptet så att det scrollas 25px till?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/191661-tweaka-det-här-scriptet-så-att-det-scrollas-25px-till"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "bassebhu"
published: "2013-08-19T10:10:39.000Z"
updated: "2013-08-20T00:52:48.000Z"
replies: 7
views: 736
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/191661-tweaka-det-här-scriptet-så-att-det-scrollas-25px-till"
---

# Tweaka det här scriptet så att det scrollas 25px till?

## #1 — bassebhu, 2013-08-19T10:10Z

Hallå!

Hur gör jag för att tweaka det här scriptet så att det scrollas till innehållet sånär som på 25px?

<http://jsfiddle.net/ztFWv/3/>

Så när man trycker på scroll to #1, #2 etc. så scrollas det åt vänster sånär som på 25px ifrån. D.v.s. 25px vitt till vänster om texten. Och utan att använda padding eller nåt.

Jag har en timeline där jag vill navigera och scriptet funkar perfekt förutom att jag vill ha lite luft till vänster om texten.

Tack för hjälp!

Permalänk: https://www.webforum.nu/p/191661

## #2 — voigtann1, 2013-08-19T12:01Z

har du den opackade versionen av plugin:et? annars är ju det enkla att lägga en wrapper i varje .slideItem med en padding i den.

Permalänk: https://www.webforum.nu/p/2313589

## #3 — bassebhu, 2013-08-19T17:23Z

Tyvärr inte, bara det som finns på den där sidan  :/  

Jag har grejer fixerat på en timeline så jag kan inte använda padding. Det skulle offseta hela timelinen. Såvida jag inte tar bort 25px på bredden från föregående div, men det känns bakvänt.

Det borde ju finnas nånstans i scriptet där den får ett x-position-värde eller nåt? Eller går den helt enkelt på element-namnet och ingen position inbladad? Oavsett vad den gör borde det gå att offseta den 25px på nåt vis tycker jag.

Tacksam för tips!

Permalänk: https://www.webforum.nu/p/2313591

## #4 — voigtann1, 2013-08-19T18:29Z

animeringen ske nog på left, så hitta det och lägg in dina 25 (även om jag inte gillar den idéen).

Permalänk: https://www.webforum.nu/p/2313593

## #5 — bassebhu, 2013-08-19T19:55Z

Jag hittade opackat! Men hittar inte var jag prickar in 25  :)  

```
// Avoid `console` errors in browsers that lack a console.
(function() {
    var method;
    var noop = function () {};
    var methods = [
        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
        'timeStamp', 'trace', 'warn'
    ];
    var length = methods.length;
    var console = (window.console = window.console || {});

    while (length--) {
        method = methods[length];

        // Only stub undefined methods.
        if (!console[method]) {
            console[method] = noop;
        }
    }
}());

// Place any jQuery/helper plugins in here.

;(function( $ ){

	var $scrollTo = $.scrollTo = function( target, duration, settings ){
		$(window).scrollTo( target, duration, settings );
	};

	$scrollTo.defaults = {
		axis:'xy',
		duration: parseFloat($.fn.jquery) >= 1.3 ? 0 : 1,
		limit:true
	};

	// Returns the element that needs to be animated to scroll the window.
	// Kept for backwards compatibility (specially for localScroll & serialScroll)
	$scrollTo.window = function( scope ){
		return $(window)._scrollable();
	};

	// Hack, hack, hack :)
	// Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
	$.fn._scrollable = function(){
		return this.map(function(){
			var elem = this,
				isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1;

				if( !isWin )
					return elem;

			var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;

			return /webkit/i.test(navigator.userAgent) || doc.compatMode == 'BackCompat' ?
				doc.body : 
				doc.documentElement;
		});
	};

	$.fn.scrollTo = function( target, duration, settings ){
		if( typeof duration == 'object' ){
			settings = duration;
			duration = 0;
		}
		if( typeof settings == 'function' )
			settings = { onAfter:settings };

		if( target == 'max' )
			target = 9e9;

		settings = $.extend( {}, $scrollTo.defaults, settings );
		// Speed is still recognized for backwards compatibility
		duration = duration || settings.duration;
		// Make sure the settings are given right
		settings.queue = settings.queue && settings.axis.length > 1;

		if( settings.queue )
			// Let's keep the overall duration
			duration /= 2;
		settings.offset = both( settings.offset );
		settings.over = both( settings.over );

		return this._scrollable().each(function(){
			// Null target yields nothing, just like jQuery does
			if (target == null) return;

			var elem = this,
				$elem = $(elem),
				targ = target, toff, attr = {},
				win = $elem.is('html,body');

			switch( typeof targ ){
				// A number will pass the regex
				case 'number':
				case 'string':
					if( /^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ) ){
						targ = both( targ );
						// We are done
						break;
					}
					// Relative selector, no break!
					targ = $(targ,this);
					if (!targ.length) return;
				case 'object':
					// DOMElement / jQuery
					if( targ.is || targ.style )
						// Get the real position of the target 
						toff = (targ = $(targ)).offset();
			}
			$.each( settings.axis.split(''), function( i, axis ){
				var Pos	= axis == 'x' ? 'Left' : 'Top',
					pos = Pos.toLowerCase(),
					key = 'scroll' + Pos,
					old = elem[key],
					max = $scrollTo.max(elem, axis);

				if( toff ){// jQuery / DOMElement
					attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );

					// If it's a dom element, reduce the margin
					if( settings.margin ){
						attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;
						attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;
					}

					attr[key] += settings.offset[pos] || 0;

					if( settings.over[pos] )
						// Scroll to a fraction of its width/height
						attr[key] += targ[axis=='x'?'width':'height']() * settings.over[pos];
				}else{ 
					var val = targ[pos];
					// Handle percentage values
					attr[key] = val.slice && val.slice(-1) == '%' ? 
						parseFloat(val) / 100 * max
						: val;
				}

				// Number or 'number'
				if( settings.limit && /^\d+$/.test(attr[key]) )
					// Check the limits
					attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max );

				// Queueing axes
				if( !i && settings.queue ){
					// Don't waste time animating, if there's no need.
					if( old != attr[key] )
						// Intermediate animation
						animate( settings.onAfterFirst );
					// Don't animate this axis again in the next iteration.
					delete attr[key];
				}
			});

			animate( settings.onAfter );			

			function animate( callback ){
				$elem.animate( attr, duration, settings.easing, callback && function(){
					callback.call(this, targ, settings);
				});
			};

		}).end();
	};

	// Max scrolling position, works on quirks mode
	// It only fails (not too badly) on IE, quirks mode.
	$scrollTo.max = function( elem, axis ){
		var Dim = axis == 'x' ? 'Width' : 'Height',
			scroll = 'scroll'+Dim;

		if( !$(elem).is('html,body') )
			return elem[scroll] - $(elem)[Dim.toLowerCase()]();

		var size = 'client' + Dim,
			html = elem.ownerDocument.documentElement,
			body = elem.ownerDocument.body;

		return Math.max( html[scroll], body[scroll] ) 
			 - Math.min( html[size]  , body[size]   );
	};

	function both( val ){
		return typeof val == 'object' ? val : { top:val, left:val };
	};

})( jQuery );
```

Permalänk: https://www.webforum.nu/p/2313596

## #6 — voigtann1, 2013-08-19T19:58Z

if frågan efter:// If it's a dom element, reduce the margin gissar jag på.

Permalänk: https://www.webforum.nu/p/2313597

## #7 — bassebhu, 2013-08-19T20:09Z

Hm, jag testade att få in 25 överallt där, men inget hände och jag kunde ta bort hela if-satsen och det funkade precis som förut.

Tips? Tack :)

Permalänk: https://www.webforum.nu/p/2313598

## #8 — bassebhu, 2013-08-20T00:52Z

Haha, hacker-basse!
Löste det.

En offset-funktion var inbyggt i scriptet. Lade till ", { offset: -25}"

Permalänk: https://www.webforum.nu/p/2313602

---

Tråden på webben: https://www.webforum.nu/amne/javascript/191661-tweaka-det-här-scriptet-så-att-det-scrollas-25px-till
