плавный скролинг до анкора
Есть задача, после заогрузки страницы, должен осуществляться автоматический, плавный скролинг до анкора.
Я парсю хэш, а потом по таймауту, пытаюсь отправить в jquery. но как это привязать скажем сюда, что-то ума не приложу.
$(function() {
$('ul.nav a').bind('click',function(event){
var $anchor = $(this);
/*
Если вы хотите использовать один из эффектов замедляющих анимацию:
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, 1500,'easeInOutExpo');
*/
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, 1000);
event.preventDefault();
});
});
Здесь идет по клику, но мне само событие не нужно. |
есть скажем div c Id="zt-component" до которого как раз мне и надо прокрутить страницу. Я делаю примерно так после загрузки body
var $anchor = document.getElementById('zt-component');
/*
Если вы хотите использовать один из эффектов замедляющих анимацию:
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, 1500,'easeInOutExpo');
*/
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, 1000);
event.preventDefault()
На что мне фаербаг ругается $anchor.attr is not a function |
var self = this;
...
scrollLeft: $(self).attr('href').offset().left
//
scrollLeft: this.href.offset().left
|
почитал про this и всё ровно не могу понять как к нему привязать div
скажем если у меня прокрутка будет идти не до анкора а до дива.
document.getElementById('zt-mainbody')
скажем до <div id="zt-mainbody"> </div> |
Проблему скролинга вниз решил так
function scrolling_list() {
newString = document.location.hash.replace(/#/,'');
if(newString !==''){
// newString
setTimeout( function() {
$('html,body').animate({
scrollTop: $('#zt-mainbody').offset().top}, 2000);
} , 300);
}
};
То есть если есть некий хэш, значит скролим вниз до дива. |
| Часовой пояс GMT +3, время: 02:08. |