Wątek przeniesiony 2015-05-20 11:56 z Webmastering przez dzek69.

Najprostszy smooth slider, ale z buttona

0

Potrzebuję zrobić zwykłe łagodne przewijanie tak jak ma wiele stron. Klik i zjechanie do diva o danym identyfikatorze. Mam <button> z atrybutem name i chcę, żeby takie buttony przenosiły do diva z identyfikatorem name+inner, np

<button name="zzz">

<div id="zzz-inner">
</div>

W internecie jest pełno smooth scrollów, ale pod element a, próbuję przerobić pod swoje potrzeby, ale nic mi nie działa. To mój ostatni kod:

		$(document).ready(function(){
			$('button[name^="#"]').on('click',function (e) {
				e.preventDefault();

				var target = e.attr("name")+'-inner';//this.hash;
				var $target = $(target);

				$('html, body').stop().animate({
					'scrollTop': $target.offset().top
				}, 900, 'swing', function () {
					window.location.hash = target;
				});
			});
		});

Byłbym wdzięczny za pomoc.

dodanie znacznika <code class="html"> - @furious programming

0

$('button[name^="#"]') oznacza button z name zaczynającym się od "#", a w Twoim kodzie HTML tego nie ma.
e.attr("name") nie zadziała, bo e odnosi się do eventu, a nie do obiektu klikniętego, od tego masz this - dodatkowo attr to funkcja z jQuery, więc stosowne będzie użycie $(this)

reszta chyba ok, nie testuję

0

Dzięki wielkie. Jakby ktoś tutaj trafił to zostawiam działający kod:

		$(document).ready(function(){
			$('button[name^="btx"]').on('click',function (e) { //btx - początek nazwy buttona
				e.preventDefault();
				var target = "#"+$(this).attr("name")+'-inner';
				var $target = $(target);

				$('html, body').stop().animate({
					'scrollTop': $target.offset().top
				}, 900, 'swing', function () {
					window.location.hash = target;
				});
			});
		});

1 użytkowników online, w tym zalogowanych: 0, gości: 1