繁体   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