Polymer滚动到div问题

时间:2014-11-12 05:10:46

标签: javascript jquery polymer

我在菜单上使用core-scaffold和core-item。我也有自己的元素包裹div id。当我点击它时,我希望我的核心项目菜单滚动到该div ...我该怎么办?我试图使用jquery,但它没有工作...请参阅下面的信息。

https://groups.google.com/forum/#!topic/polymer-dev/3wZ__kbHDJU

这是我的标题面板:

<core-scaffold responsiveWidth="600px">
  <core-header-panel navigation flex mode="scroll">
    <core-toolbar>Navigation</core-toolbar>
    <core-menu theme="core-light-theme">
        <core-item icon="home" label="Home"></core-item>
        <core-item icon="assignment-ind" label="Who am i"></core-item>  
        <core-item icon="work" label="Works"></core-item>
        <core-item icon="work" label="Skills"><a class="nav" href="#skill"></a></core-item> <!-- WHEN CLICK WILL GO TO SKILL ID DIV -->  
        <core-item icon="settings-phone" label="Contacts"></core-item>
        <core-item icon="link" label="v8"></core-item>
        <core-item icon="link" label="v7"></core-item>
        <core-item icon="link" label="v6"></core-item>
    </core-menu>
  </core-header-panel>

我的元素:

<div id="skills"> <!-- should scroll on this part -->
    <skills-koh></skills-koh> <!-- my element -->
</div>

</core-scaffold>

我试图使用js脚本,但它不能正常工作:

jQuery(".nav").on("click", function(event){
    event.preventDefault(); 
     var dest=null;
     if(($($(this.hash)).offset().top) > ($(document).height()-$(window).height())){
          dest= $(document).height()-$(window).height();
     }else{
          dest=$($(this.hash)).offset().top;
     }
    $($(this.hash)).trigger("click");
    $('html,body').animate({scrollTop:dest}, 500, 'swing' );

 });

还在我的index.html上添加:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

1 个答案:

答案 0 :(得分:1)

我假设您要滚动到#skills元素,对吗?然后:

1)<a class="nav" href="#skill"></a>有拼写错误

2)this.hash并不是指任何事情。根据您的代码,它应该是this.prop('href')

3)你在哪里尝试使用jQuery?在组件core-item内?如果在外面,那么它就不会起作用,因为<a class="nav"...元素没有暴露给DOM,而是包含在它自己的模板/ Shadow DOM中。