簡體   English   中英

如何刪除瀏覽器自動滾動到div ID?

[英]How to remove browser autoscroll to a div id?

在我的網頁中,我在中心使用垂直手風琴列出了一些內容。 加載頁面后,手風琴位於中間。 但是,當用戶單擊“手風琴”選項卡時,整個頁面會向上滾動,使“手風琴”選項卡位於瀏覽器頂部。 我如何避免這種反應。 我希望用戶不用自動滾動就能停留在頁面部分本身上。 有什么解決辦法嗎?

當用戶單擊手風琴選項卡時,頁面URL變為http://web.com/#tab_1 但是我無法從手風琴中刪除該ID,因為它需要ID才能正常運行。 還有其他解決方案嗎?

在您的點擊處理程序中,您應阻止點擊鏈接的默認操作(即滾動到錨點)。 一些偽代碼,因為我不知道您的手風琴是如何設置的:

$("#accordion a").click(function(e)) {
  e.preventDefault(); // This prevents the scrolling from occuring
  $("#accordion").activate($(this).attr('id'));
});

onclick使用preventDefault可以解決您的問題

我不相信有一種直接的基於CSS的方法可以避免:target偽選擇器帶有URL片段鏈接的默認瀏覽器行為,該行為是滾動到有問題的元素。 正如其他人所建議的那樣,您將不得不在JS中添加它。

如果我正確地理解了您的問題,那是該頁面在點擊時到達了頂部,就我個人而言,我總是添加它來停止自動滾動。

添加腳本

<%--Magic Script that maintains position on partial rendering and click--%>
<script type="text/javascript">
    window.scrollTo = function (x, y) {
        return true;
    }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM