плавный скролинг до анкора
Есть задача, после заогрузки страницы, должен осуществляться автоматический, плавный скролинг до анкора.
Я парсю хэш, а потом по таймауту, пытаюсь отправить в 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, время: 17:48. |