我在菜单上使用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>
答案 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中。