简体   繁体   English

页面锚点的Javascript onclick window.location?

[英]Javascript onclick window.location for page anchors?

So SOF, 所以SOF

I've got a little problem where I don't want #BOT to appear in my url when I click my links when using page anchors. 我有一个小问题,当我使用页面锚点单击链接时,我不希望#BOT出现在我的URL中。

Javascript Java脚本

$("a.bottom").click(function() {
    window.location = '#BOT';
});

Different links... 不同的链接...

<a class="bottom" href="javascript: void(0);">BOTTOM</a>
<a href="#BOT">BOTTOM</a>

Anchor

<a id="KEY"></a>

How do I stop it adding #BOT in the pageurl bar? 如何停止在pageurl栏中添加#BOT

The jQuery scrollTo plugin is very good at this. jQuery scrollTo插件非常擅长于此。 It will scroll your window to an element without using anchors: 它将不使用锚点将窗口滚动到元素:

$("a.bottom").click(function() {
    $.scrollTo($("a[name='#BOT']"));
});

Would be good to make the functionality more generic too: 也可以使功能更加通用:

jQuery jQuery的

$("a.scrollable").click(function() {
    $.scrollTo($("#"+$(this).data("scrollto")));
});

HTML 的HTML

<a class="scrollable" data-scrollto="BOT">BOTTOM</a>
<a id="BOT"></a>
<a class="scrollable" data-scrollto="KEY">BOTTOM</a>
<a id="KEY"></a>

This can be done using jQuery offset and animate as discussed in this question 本问题所述,可以使用jQuery偏移量和动画来完成此操作

function scrollToAnchor(aid) {
    var aTag = $("a[id='" + aid + "']");
    $('html,body').animate({
        scrollTop: aTag.offset().top
    }, 'slow');
}

$("a.bottom").click(function () {
    scrollToAnchor('BOT');
});

Fiddle here 在这里摆弄

You can scroll the page by using window.scrollTo(x,y) method. 您可以使用window.scrollTo(x,y)方法滚动页面。 Which does not need page to be refreshed. 不需要刷新页面。

for example: 例如:

$("a.bottom").click(function() {
    scrollTo(0,100);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM