2016-04-08 7 views
0

Ich habe zwei Panels, Hinflug und Hinflug. Sobald der Benutzer den Hin- und Rückflug ausgewählt hat, führt er eine Preisüberprüfung durch und zeigt sie am unteren Rand der beiden Felder an (der Fahrpreis).Wie scrollt man zu einem bestimmten div, ohne die URL mit angular + ui router zu ändern?

Ich möchte in der Lage sein, zu den farePanel scrollen, sobald die ausgehenden und eingehenden aus dem Controller selbst ausgewählt ist, habe ich versucht mit $ anchorScroll, aber es fügt die ID #farePanel an die URL.

zusätzlich benutze ich ui-router, wenn das hilft.

+0

können Sie Ihren Code teilen und uns sagen, was Sie habe –

+0

versucht Dies kann Ihnen helfen, Ihr Ziel zu erreichen http://jsfiddle.net/pkozlowski_opensource/hzxNa/1/ –

+0

@HassanTariq Es ist eine Frage des automatischen Scrollens einmal Outbound und Inbound ausgewählt. Würde es helfen, wenn ich die Benutzeroberfläche teile? Der Code ist ziemlich lang. Was ich auch versucht habe, ist $ ankerScroll und $ location.hash(), um zum div zu gehen, aber es funktioniert nur einmal: /. Der Benutzer sollte die ausgehenden und eingehenden Segmente mehrmals auswählen können, um den Tarif zu überprüfen. Wenn dies geschieht, sollte die Seite nur nach unten scrollen, um das Tarifsegment zu überprüfen. –

Antwort

0

alles, was Sie brauchen, ist mit plain javascript zu tun. Rufen Sie die Funktion window.scrollTo auf, nachdem Sie den Abstand vom oberen Rand des Fensters berechnet haben. Sie können eine Arbeits Geige siehe hier: https://jsfiddle.net/scyrizales/vj44Lumv/

angular.module("test", []) 
.controller("Ctrl1", function($scope, $timeout, $window) { 
    $scope.showFare = false; 
    $scope.process = function() { 
    $scope.showFare = true; 
    $timeout(function() { 
     var element = $window.document.querySelector("#fare"); 
     var distance = element.getBoundingClientRect().top; 
     $window.scrollTo(0, distance); 
    }); 
    } 
}); 
+0

Prost, die funktioniert hat! Würdest du eine Möglichkeit kennen, die Schriftrolle zu animieren, um sie zu glätten, aber ... –

+0

Ich habe sie mit der Ease-Funktion aktualisiert, damit sie sanft glättet – scyrizales

+0

https://jsfiddle.net/vj44Lumv/4/ – scyrizales

Verwandte Themen