我的HTML文件是2845行长.和主要内容是大约1523行长.我的内容是滞后的,当我在内容之间滚动.文件卡住.它也有一个选择标记,有助于在内容之间轻松导航.当选择选项A将显示部分A,选项B将显示部分B,和,选项C将显示A和B两个部分。这只是一个例子,主页有12个这样的选项。那么有什么方法可以停止滞后呢?我把所有这些部分放在不同的div中,以便可以根据所选选项查看它们。
6jjcrrmo1#
你可以做的一件事就是在元素中添加“display:none”。display:none,隐藏元素并破坏其呈现状态。这意味着取消隐藏元素的代价与呈现具有相同内容的新元素一样高。然后可以使用“scrollTop()”和“offset().top”方法将其呈现回DOM。下面是我告诉你的一个例子:
window.onscroll = function () { scrollFunction() }; function scrollFunction() { var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; for (var i = 0; i < boxes.length; i++) { boxesOffset[i] = boxes[i].offsetTop; boxesOffsetHeight[i] = boxes[i].offsetHeight; } boxSize = boxesOffsetHeight[toWitchBox] + nextScrollTop console.log(boxSize + " , " + toWitchBox) if ((scrollTop > boxSize) && toWitchBox < boxes.length - 1) { boxes[toWitchBox + 1].style.display = "block"; nextScrollTop = scrollTop toWitchBox += 1 } } var nextScrollTop = 0 var toWitchBox = 0 var boxes = document.getElementsByClassName("box"); var boxesOffsetHeight = [] var boxesOffset = []
body { min-height: 5200px; } #box1 { background-color: red; width: 800px; height: 600px; } #box2 { background-color: yellow; width: 800px; height: 800px; display: none; } #box3 { background-color: blue; width: 800px; display: none; height: 800px; } #box4 { background-color: green; width: 800px; display: none; height: 800px; } #box5 { background-color: pink; width: 800px; display: none; height: 800px; }
<body> <div id="box1" class="box"> </div> <div id="box2" class="box"> </div> <div id="box3" class="box"> </div> <div id="box4" class="box"> </div> <div id="box5" class="box"> </div> </body>
1条答案
按热度按时间6jjcrrmo1#
你可以做的一件事就是在元素中添加“display:none”。
display:none,隐藏元素并破坏其呈现状态。这意味着取消隐藏元素的代价与呈现具有相同内容的新元素一样高。
然后可以使用“scrollTop()”和“offset().top”方法将其呈现回DOM。
下面是我告诉你的一个例子: