2016-10-06 3 views
0
app.controller('homeCtrl', function($scope, $log, $location, $http, dataService, blockUI) { 
var self = $scope; 
self.init = function() { 
    $log.info("home controller loaded"); 
    $('html,body').animate({scrollTop: $("#services_div").offset().top-80},'slow'); 
}; 
self.init(); 
}); 

Это мой код, который я хочу, когда фокус загрузки страницы переходит к конкретному div, но это не работает, потому что мой контроллер загружается до полной загрузки страницы html. Даже я пробовал использовать window.onload, но это также не работает для меня. пожалуйста, предложите какой-то способ сделать это.сосредоточиться на конкретном div при загрузке контроллера в первый раз angularjs

это мой HTML-код:

<section class="serviceBanner"> 
<div class="topBar"> 
    <div class="container group"> 
     <div class="breadcrums"> 
      <ul> 
       <li><a href="index.html">Home</a></li> 
       <li><a href="javascript:void(0);">Service We Offer</a></li> 
       <li>Car Servicing</li> 
      </ul> 
     </div> 
     <!--//breadcrums--> 
    </div> 
    <!--//container--> 
</div> 
<!--//topBar--> 

<div class="container" id="bookNowDiv"> 
    <div class="servicebanContent text-center"> 
     <h2>Our Services</h2> 
     <h1>Vehicle Servicing</h1> 
     <p>Every vehicle needs care and maintenance.</p> 
     <p>Get your vehicle serviced now, avoid breakdowns!</p> 
     <p class="banButton"> 
      <a href="service/vehicle" id="btnBookNow">BOOK NOW</a> 
     </p> 
    </div> 
    <!--//servicebanContent--> 
</div> 
<!--//container--> 

+1

Просто проверьте ссылки: http://stackoverflow.com/questions/15458609/execute-function-on-page-load HTTP: // stackoverflow.com/questions/27194805/angularjs-on-page-load-call-function –

+0

Можете ли вы обновить свой вопрос с помощью HTML-кода, а также –

ответ

0

Вы можете добавить данные-нг-инициализации атрибута элемента, который вам нужно сосредоточиться. Это будет ждать, пока элемент будет загружен, и запустите функцию, когда она была.

<div name="element-to-focus" data-ng-init="init()"></div> 

Вы вообще не должны использовать данные-нг-Init этот путь, но в этом случае он должен работать нормально и не должно вызывать никаких проблем.

+0

Я уже пробовал этот вариант, но он также не работает для меня. – pooja

+0

@pooja Пробовал ли вы window.onload или $ window.onload? $ window - это угловая версия окна и может работать лучше. – Joseph

+0

Да, я пытаюсь $ window.onload, но все равно сталкиваюсь с той же проблемой. Если я в первый раз загружаю страницу, она переходит к этому div, а затем внезапно она идет в нижней части. Если вы идете вниз, и в то же время я обновляю эту страницу, тогда этот фокус сначала идет на мой конкретный div, и вдруг он возвращается внизу. – pooja

0

Попробуйте

var app = angular.module('demo', []); 
 
app.controller('Ctrl', function($scope, $window) { 
 
    var $target = $("#email"); 
 
    $("body").animate({ 
 
    scrollTop: $target.offset().top 
 
    }, "slow"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="demo" ng-controller="Ctrl"> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div id="email">sdfsdfsdf</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
    <div>demo message</div> 
 
</div>

+0

Это решение создает проблему. Когда я пытаюсь перейти на мою страницу, он меняет свой URL-адрес с http: // localhost: 8888/services на http: // localhost: 8888/services # bookNowDiv. Из-за этого я не могу перейти на свою страницу. – pooja

+0

Я обновил свой код. теперь ваш URL не изменится. –

+0

это немного работает для меня, но у меня проблема. когда я прокручиваю вниз внизу и в то же время снизу обновляю страницу, тогда сначала фокус приходит к этому конкретному div, и вдруг он возвращается внизу. Не знаю, как – pooja

Смежные вопросы