• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Anpassen eines Scripts

th_wolfgang

New member
Hallo,

wie kann ich denn dies Script so anpassen, das egal auf welchen Link in der Webseite geklickt wird immer zu einem Div mit dem Namen ‚nestedIFrame‘ gescrollt wird, ich möchte da alle Links einbeziehen.

Code:
    $('a[href^="#"]').on('click', function(event) {
        var target = $(this.href);
        if( target.length ) {
            event.preventDefault();
            $('html, body').animate({
                scrollTop: target.offset().top
            }, 1000);
        }
    });

Ich dachte "nehme" einfach diesen Part [href^="#"] raus, macht er aber leider so nicht.

Thanks for Help
& LG Wolf
 
Zuletzt bearbeitet:
Das kannst du auf der Seite, auf der sich der Link befindet, gar nicht machen. Wenn die neue Seite geladen wird, wird JS zurückgesetzt. Du musst das auf der zu ladenden Seite einbauen (ev. noch abhängig von einem GET-Parameter).
 
Hallo,

danke, ich kann das auf allen Seiten einbauen, das ist nicht so das Problem, allerdings bis her kein Erfolg gehabt. es ist lediglich "blöd", wenn ein Link im Footer geklickt wird und "der bleibt da stehen" so dass man nicht einmal mitbekommt, dass sich die Seite oben bereits aufgebaut hat.

LG Wolf
 
Werden die Link in deinem iFrame geöffnet? Dann kannst du das natürlich schon auf der Seite machen und zu dem iFrame hinscrollen.
Code:
    $('a[target]').on('click', function(event) {
        var target = $("#" + this.target);
        if( target.length ) {
            $('html, body').animate({
                scrollTop: target.offset().top
            }, 1000);
        }
    });
 
Hallo,

danke, aber leider funktioniert dies auch nicht. Ja ich will das Links zum iFrame Scrollen. Da wird ja eh alles geöffnet. Aber es geht nicht...

LG Wolf
 
Kannst du mal einen Testlink oder ein fiddle machen?

PS: Im Code oben nehme ich an, dass das iFrame auch eine ID hat. Wenn da nur ein Name ist, muss der Selektor natürlich anders aussehen: 'iframe[name="' + a.target + '"]'. Und wenn du wirklich zu einem <div> und nicht zu dem <iframe> scollen willst, musst du den Namen des <div> anstatt dem a.target verwenden.
 
Hallo,

danke, den Namen des iFrame hatte ich bereits eingegeben. Leider hatte es dennoch nicht funktioniert. Der iFrame hat eine ID und auch einen Namen. Es ist komisch, warum diese script nicht "wollen". Ich habe es immer noch nicht hinbekommen…

Danke & LG
Wolf
 
Hallo,

leider habe ich es immer noch nicht... !

Code:
<script>
    $('iframe[name="'nestedIFrame'"]').on('click', function(event) {
        var target = $("#" + this.target);
        if( target.length ) {
            $('html, body').animate({
                scrollTop: target.offset().top
            }, 1000);
        }
    });
</script>


Die Links sitzen im iFrame, der call kommt allerdings aus der Parent.

war paar Tage leider ans Bett gefesselt... jetzt geht es weiter...

LG & Danke
Wolf
 
Zuletzt bearbeitet:
Oh... du hast den falschen Selektor verändert. Ich meinte eigentlich den Selektor für die Variable target.

Die Links sitzen im iFrame, der call kommt allerdings aus der Parent.
Ich dachte, die Links sitzen im Footer außerhalb des iframes und du willst zum iframe scrollen...? Wenn der Link im iFrame ist, sieht man ja direkt, dass etwas neues geladen wird...
 
Hallo,

ja die Links sind im Footer, der iFrame im oberen Teil der Webseite. der Footer bzw. die Footerlinks rufen Links auf, welche der iFrame mitbringt. Dies wird dann im iFramefenster geladen. Leider scrollt (nach Klick auf den Link) die Seite nicht zum iFrame sondern bleibt "am Footer Bereich hängen". Sehr unschön, da man nicht ersehen kann, das sich oben bereits der Links aufgebaut hat.

Danke & LG
Wolf

Nachtrag:

Code:
<script>
    $('a[target]').on('click', function(event) {
        var target = $('#' + dermeiniFrame);
        if( target.length ) {
            $('html, body').animate({
                scrollTop: target.offset().top
            }, 1000);
        }
    });
</script>

..so geht es auch nicht. Das ist wieder eine Lebensaufgabe... :)


PS: Kann es sein, da bereits in der Seite (zum Hochscrollen) dieser: https://gist.github.com/galambalazs/6477177 Code vorhanden ist sich hier "was beißt"?

Kleinere Erfolge habe ich mit diesem Schnipsel:

Code:
<script>
$('a').on('click',function(e){
e.preventDefault();
    var $this=$(this);
    var id = $this.attr('href');
    var offset = $(id)[0].offsetTop;
    var wrapY=$('#nestedIFrame')[0].offsetTop;
    console.log(wrapY);
    $('#nestedIFrame').scrollTop(offset-wrapY);
});
</script>

Aber ab einem Brand-Slider und dem Footer darunter... Scrollt er in die falsche Richtung und zwar nach unten.




Danke & LG
Wolf
 
Zuletzt bearbeitet:
Hallo,

ich habe es immer noch nicht geschafft. Ich glaube diese zwei Scripts "beissen" sich:

Code:
<script>
$('body').on('click', '.top', function(){
    $('html, body').animate( { scrollTop: 0 }, 'slow' );
    return false;
});
</script>


<!-- Target Link-->

<script type="text/javascript">
$(document).ready(function(){
   $('a', 'li').attr('target', 'nestedIFrame');
});
</script> 
<!-- Target Link-->

Das untere Script brauche ich, damit sich links im iFrame bereich aufbauen. Kann man dies irgendwie verbinden, so dass mein Scrollen auch funktioniert. Nicht gut, wenn beim Klick auf ein Link die Seite "macht was sie will" und keiner ersehen kann, das sich der Link bereits aufgebaut hat.

Danke & LG
Wolf
 
Zurück
Oben