[英]How do I keep on the same page by clicking on internal anchor links, using Aurelia?
[英]Jscrollpane and internal anchor links
我正在使用Jscrollpane,并且一切正常,除非我尝试将其与内部锚一起使用。 它应该像官方页面上的示例一样工作。
但是在我的示例中,它确实破坏了我的网站。 整个内容是向上浮动的,我自己也无法弄清楚。
这是我的页面: http : //kunden.kunstrasen.at/htmltriest/index.php? site= dieanreise& user_lang=de ,如果单击了内部锚点: http : //kunden.kunstrasen.at/htmltriest/index.php?网站= dieanreise&user_lang = DE#westautobahn
有人clou这是怎么回事? 谢谢你的帮助。
jspane不适用于旧式锚点,例如
<a name="anchor"></a>
相反,你必须写
<a id="anchor"></a>
另外,您必须启用
hijackInternalLinks: true;
在jScrollPane设置对象中。
hijackInternalLinks还会从滚动窗格外部捕获链接,如果只需要内部链接,则可以添加此代码,例如hijackInternalLinks,它将绑定a元素上的点击功能,并使用目标调用scrollToElement:
\$(document).ready(function() {
panes = \$(".scroll");
//hijackInternalLinks: true;
panes.jScrollPane({
});
panes.each(function(i,obj){
var pane = \$(obj);
var api = pane.data('jsp');
var links = pane.find("a");
links.bind('click', function() {
var uriParts = this.href.split('#');
if (uriParts.length == 2) {
var target = '#' + uriParts[1];
try{
api.scrollToElement(target, true);
}catch(e){
alert(e);
}
return false;
}
});
});
});
但请注意,您将始终必须在标签上使用id属性。 如果您使用tinymce,则可以使用此功能修复代码
function myCustomCleanup(type, value) {
switch (type) {
case "get_from_editor_dom":
var as = value.getElementsByTagName("a");
for(var i=0; i< as.length;i++){
if (as[i].hasAttribute('name')){
var name = as[i].getAttribute('name');
as[i].setAttribute('id',name);
}
}
break;
}
return value;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.