ich den folgenden Code verwenden zu blättern Punkte mit jQuery zu verankern:jQuery blättern zu verankern (minus festgelegte Menge an Pixeln)
$(document).ready(function() {
function filterPath(string) {
return string
.replace(/^\//,'')
.replace(/(index|default).[a-zA-Z]{3,4}$/,'')
.replace(/\/$/,'');
}
var locationPath = filterPath(location.pathname);
var scrollElem = scrollableElement('html', 'body');
$('a[href*=#]').each(function() {
var thisPath = filterPath(this.pathname) || locationPath;
if ( locationPath == thisPath
&& (location.hostname == this.hostname || !this.hostname)
&& this.hash.replace(/#/,'')) {
var $target = $(this.hash), target = this.hash;
if (target) {
var targetOffset = $target.offset().top;
$(this).click(function(event) {
event.preventDefault();
$(scrollElem).animate({scrollTop: targetOffset}, 400, function() {
location.hash = target;
});
});
}
}
});
// use the first element that is "scrollable"
function scrollableElement(els) {
for (var i = 0, argLength = arguments.length; i <argLength; i++) {
var el = arguments[i],
$scrollElement = $(el);
if ($scrollElement.scrollTop()> 0) {
return el;
} else {
$scrollElement.scrollTop(1);
var isScrollable = $scrollElement.scrollTop()> 0;
$scrollElement.scrollTop(0);
if (isScrollable) {
return el;
}
}
}
return [];
}
});
Gibt es trotzdem, um es zu diesem Anker zu machen zu bewegen, aber abzüglich ein festgelegter Betrag von Pixeln? (in meinem Fall möchte ich es -92px gehen)
Danke für jede Hilfe.
Ähnlich http://stackoverflow.com/questions/832860/how-to-scroll-the-window-using-jquery-scrollto-function – robbrit
Wie sind sie ähnlich ??Meine ist, über JQuery zu JEDEM Anker zu scrollen, was Sie verlinkt haben, möchte scrollen, wenn sie in der Nähe des oberen Randes der Seite sind. Der Code ist sehr unterschiedlich. – John
Der einzige Unterschied besteht darin, zu welchem Selektor Sie blättern möchten, und zum Offset. Sehen Sie sich die akzeptierte Antwort an und ersetzen Sie "# id" durch den gewünschten Selektor und ersetzen Sie "100" durch den von Ihnen gewünschten Offset. – robbrit