PDA

Zobacz pełną wersję : Skrypt przeiwjanie



loograk
21-01-2015, 11:24
(function(t){function e(t){return t.replace(/(:|\.)/g,"\\$1")}var l="1.4.13",o={},s={exclude:[],excludeWithin:[],offset:0,direction:"top",scrollElement:null,scrollTarget:null,beforeScroll :function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficent:2,preventDefault:!0},n=f unction(e){var l=[],o=!1,s=e.dir&&"left"==e.dir?"scrollLeft":"scrollTop";return this.each(function(){if(this!=document&&this!=window){var e=t(this);e[s]()>0?l.push(this):(e[s](1),o=e[s]()>0,o&&l.push(this),e[s](0))}}),l.length||this.each(function(){"BODY"===this.nodeName&&(l=[this])}),"first"===e.el&&l.length>1&&(l=[l[0]]),l};t.fn.extend({scrollable:function(t){var e=n.call(this,{dir:t});return this.pushStack(e)},firstScrollable:function(t){var e=n.call(this,{el:"first",dir:t});return this.pushStack(e)},smoothScroll:function(l,o){if(l =l||{},"options"===l)return o?this.each(function(){var e=t(this),l=t.extend(e.data("ssOpts")||{},o);t(this).data("ssOpts",l)}):this.first().data("ssOpts");var s=t.extend({},t.fn.smoothScroll.defaults,l),n=t.sm oothScroll.filterPath(location.pathname);return this.unbind("click.smoothscroll").bind("click.smoothscroll",function(l){var o=this,r=t(this),i=t.extend({},s,r.data("ssOpts")||{}),c=s.exclude,a=i.excludeWithin,f=0,h=0,u=!0, d={},p=location.hostname===o.hostname||!o.hostname ,m=i.scrollTarget||(t.smoothScroll.filterPath(o.pa thname)||n)===n,S=e(o.hash);if(i.scrollTarget||p&&m&&S){for(;u&&c.length>f;)r.is(e(c[f++]))&&(u=!1);for(;u&&a.length>h;)r.closest(a[h++]).length&&(u=!1)}else u=!1;u&&(i.preventDefault&&l.preventDefault(),t.extend(d,i,{scrollTarget:i.sc rollTarget||S,link:o}),t.smoothScroll(d))}),this}} ),t.smoothScroll=function(e,l){if("options"===e&&"object"==typeof l)return t.extend(o,l);var s,n,r,i,c=0,a="offset",f="scrollTop",h={},u={};"number"==typeof e?(s=t.extend({link:null},t.fn.smoothScroll.defaul ts,o),r=e):(s=t.extend({link:null},t.fn.smoothScro ll.defaults,e||{},o),s.scrollElement&&(a="position","static"==s.scrollElement.css("position")&&s.scrollElement.css("position","relative"))),f="left"==s.direction?"scrollLeft":f,s.scrollElement?(n=s.scrollElement,/^(?:HTML|BODY)$/.test(n[0].nodeName)||(c=n[f]())):n=t("html, body").firstScrollable(s.direction),s.beforeScroll.call (n,s),r="number"==typeof e?e:l||t(s.scrollTarget)[a]()&&t(s.scrollTarget)[a]()[s.direction]||0,h[f]=r+c+s.offset,i=s.speed,"auto"===i&&(i=h[f]||n.scrollTop(),i/=s.autoCoefficent),u={duration:i,easing:s.easing,c omplete:function(){s.afterScroll.call(s.link,s)}}, s.step&&(u.step=s.step),n.length?n.stop().animate(h,u):s.a fterScroll.call(s.link,s)},t.smoothScroll.version= l,t.smoothScroll.filterPath=function(t){return t.replace(/^\//,"").replace(/(?:index|default).[a-zA-Z]{3,4}$/,"").replace(/\/$/,"")},t.fn.smoothScroll.defaults=s})(jQuery);

- - - Updated - - -

Witam,
Ma na stronie górne menu (position:fixed) z linkami do kotwic na tej samej stronie. Powyższy skrypt przewija stronę do kotwicy jednak po zatrzymaniu menu zasłania kotwicę.
Czy ma ktoś pomysł jak zmienić powyższy skrypt aby zatrzymywał stronę 122px ponad kotwicą.

Z góry dziękuję za pomoc!

noras
21-01-2015, 16:08
A margin-top dla kotwicy nie pomoże?

loograk
21-01-2015, 17:58
Pomoże oczywiście, ale wiąże się to z kilkoma marginesami górnymi o szerokości 122px. Strona ma uklad segmentowy i każdy segment zajmuje całą szerokość ekranu i ma inny kolor, wiec ze wzgledów estetycznych wolalbym zmienić skrypt niż css.

noras
21-01-2015, 21:53
Mo to masz dwa wyjścia. Może spróbuj użyć padding-top, sekcja nadal będzie zajmowała 100% ekranu i układ Ci się nie posypie.

Druga opcja to zmiana skryptu jQuery, są takie które można skonfigurować i dodają one automatycznie padding/margin top dla każdej sekcji. Więc i i tak musisz przetestować padding czy będzie Ci odpowiadał.

loograk
22-01-2015, 21:01
Dziękuję za pomoc.