单击时锚定滚动不起作用

时间:2016-07-18 13:46:50

标签: javascript jquery html angularjs scroll

好的,我正在创建一个联系页面,其中我有两个具有视差效果的表单。我想要包含一个锚点,当点击时它会滚动到下一个表单。我已经尝试了很多我在stackoverflow上找到的代码,但似乎都没有。

这是我的HTML:

<div id="contenedorPrincipalContacto" class="col-xs-12" data-type="parallax-section">

    <a href="#colera" id="button">Cotizacion</a>

    <div class="col-xs-12" id="contenedorContacto" data-type="parallax-section">
        //here goes all the form code
    </div>

    <div id="colera"></div> //this is where I want to go when clicked the anchor

    <div class="col-xs-12" id="contenedorCotizacion" data-type="parallax-section">
        //here goes all the content of the second form
    </div>

    <img src="images/ipadContacto.png" id="ipadContacto" alt="">

</div>

这是JavaScript:

app.controller('contactoCtrl', function ($scope, $rootScope, $routeParams,     $location, $http, Data) 
  {
      $(document).ready(function(){
      $("#button").click(function() {
      $('html, body, #vista').animate({
         scrollTop: $("#contenedorCotizacion").offset().top
      }, 1000);
  });
  });
});

我已经看过这项工作,我在小提琴中尝试过它并且它有效......我无法弄清楚出了什么问题......

我正在继续另一个程序员的工作,他有角度的这个:

app.config(['$routeProvider',
  function ($routeProvider) {
    $routeProvider.
        when('/', {
            title: 'Home',
            templateUrl: 'partials/home.html',
            controller: 'homeCtrl'
        })
        .when('/videos',{
            title: 'texts',
            templateUrl: 'partials/texts.html',
            controller: 'textsCtrl'
        })
        .when('/estandar',{
            title: 'AboutUs',
            templateUrl: 'partials/aboutUs.html',
            controller: 'aboutUsCtrl'
        })
        .when('/contacto',{
            title: 'Contact',
            templateUrl: 'partials/contact.html',
            controller: 'contactCtrl'
        })
        .otherwise({
            redirectTo: '/'
        });
  }])

我不知道出了什么问题。任何帮助表示赞赏。

更新:

我意识到Angular确实“抓住”了每个链接,因此我最终进入了主页......似乎我无法使用锚点。我尝试使用这样的javascript:

$("#button").click(function(){

        var pagina = document.getElementById("vista");
        pagina.scrollTo(0,1000);
    });

它仍然无法正常工作。它给了我一个错误:“contactoCtrl.js:24 Uncaught TypeError:pagina.scrollTo不是函数”我为不便之处道歉,我是编程的新手

2 个答案:

答案 0 :(得分:0)

app.config(['$routeProvider',
  function ($routeProvider) {
  $routeProvider.
    when('/', {
        title: 'Home',
        templateUrl: 'partials/home.html',
        controller: 'homeCtrl'
    })
    .when('/videos',{
        title: 'texts',
        templateUrl: 'partials/texts.html',
        controller: 'textsCtrl'
    })
    .when('/estandar',{
        title: 'AboutUs',
        templateUrl: 'partials/aboutUs.html',
        controller: 'aboutUsCtrl'
    })
    .when('/contacto',{
        title: 'Contact',
        templateUrl: 'partials/contact.html',
        controller: 'contactCtrl'
    })
    .otherwise({
        redirectTo: '/'
    });
}])

这段代码是问题所在,事实证明,无论何时点击链接,它都会被重定向到主页,因此我必须找到另一种方法来进行滚动

答案 1 :(得分:-2)

你能忘记导入jquery库吗?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

Seeya, 耶稣