簡體   English   中英

我如何創建一個函數,以便當主體阻止滾動時,模式窗口中的內容滾動到頂部?

[英]How can I create a function so that the content in a modal window scrolls to top when body prevents scroll?

我對開發很陌生,現在正在創建自己的投資組合。 我有模式窗口,用戶可以在其中顯示和瀏覽不同的項目。 我正在使用javascript瀏覽項目,並且已經設置了主體以防止在滾動模式窗口時主體滾動。 我的問題:瀏覽下一個項目時,如何創建一個函數,以便模態窗口中的內容滾動到頂部? 現在,您最終離開的位置與上一個項目所在的位置相同。

//Open modal
    function openModal() {
        document.getElementById("projectModal").style.display ="block";
        noScroll();
    }
    // Close Modal
    function closeModal() {
        document.getElementById("projectModal").style.display ="none";
        addScroll();
    }

    var projectIndex =1;
    showProjects(projectIndex);

    function nextProject(n) {
        showProjects(projectIndex+=n);
    }

    function currentProject(n) {
        showProjects(projectIndex=n);
    }

    function showProjects(n) {
        var i;
        var projects = document.getElementsByClassName("projects");
        if (n>projects.length) {
            projectIndex =1
        }
        if  (n<1) {
            projectIndex= projects.length
        }
        for (i=0;i<projects.length; i++) {
            projects[i].style.display = "none";

        }
      projects[projectIndex-1].style.display ="block";

    }
// Prevent bodyscrolling
function noScroll() {
    body.classList.add("noScroll");
}  

//Enables bodyscrolling        
function addScroll() {
    body.classList.remove("noScroll");  
}

只需將元素的scrollTop設置為0:

function openModal() {
    var modal = document.getElementById("projectModal");
    modal.scrollTop = 0;
    modal.style.display ="block";
    noScroll();
}

var modal = document.getElementById("projectModal");
    var modalContent = document.getElementById("modalContent");
    function openModal() {
        modal.style.display ="block";
        noScroll();
    }
    // Close Modal
    function closeModal() {
        modal.style.display ="none";
        addScroll();
    }

    var projectIndex =1;
    showProjects(projectIndex);

    function nextProject(n) {
        showProjects(projectIndex+=n);
    }

    function currentProject(n) {
        showProjects(projectIndex=n);
    }

    function showProjects(n) {
        var i;
        var projects = document.getElementsByClassName("projects");
        if (n>projects.length) {
            projectIndex =1
        }
        if  (n<1) {
            projectIndex= projects.length
        }
        for (i=0;i<projects.length; i++) {
            projects[i].style.display = "none";

        }
      projects[projectIndex-1].style.display ="block";
        modalContent.scrollTop = 0;
    }
// Prevent bodyscrolling
function noScroll() {
    body.classList.add("noScroll");
}  

//Enables bodyscrolling        
function addScroll() {
    body.classList.remove("noScroll");  
}

暫無
暫無

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

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