Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除div时如何保留当前视口?_Javascript_Jquery - Fatal编程技术网

Javascript 删除div时如何保留当前视口?

Javascript 删除div时如何保留当前视口?,javascript,jquery,Javascript,Jquery,请看。基本上,我有3个很长的div。在第二个div的末尾,我有一个按钮,单击它可以删除第一个div。问题是删除这个div会使页面滚动到末尾。发生这种情况时,如何防止这种行为并保持视口完好无损 <div id="first"> <p>Some really long content ...</p> </div> <div id="second"> <p>Some really long content... &

请看。基本上,我有3个很长的div。在第二个div的末尾,我有一个按钮,单击它可以删除第一个div。问题是删除这个div会使页面滚动到末尾。发生这种情况时,如何防止这种行为并保持视口完好无损

<div id="first">
    <p>Some really long content ...</p>
</div>
<div id="second">
    <p>Some really long content... </p>
</div>
<button onclick="$('#first').remove()">Remove First div</button>
<div id="third">
    <p>Some really long content ...</p>
</div>

你解释的行为是意料之中的。要保持回到当前位置,需要调整视口滚动的位置。例如,在JSFIDLE中更新:

$“按钮”。单击功能{ var firstElHeight=$'first'.height;//获取要删除的元素的高度 var currentHeight=$body.scrollTop;//获取当前滚动位置 $'第一个'。删除; $body.scrollTop currentHeight-firstElHeight;//计算并返回 };