【发布时间】:2018-12-31 23:54:19
【问题描述】:
我正在研究浮动 div 效果,当向下滚动时,div 将移动到顶部底部。问题是当您向下滚动并单击按钮以使 div 固定时,动画只是跳出顺序。它应该更平滑地移动到旧位置。
<div id="container">
<button id="toggleFix" onclick="document.querySelector('#element').classList.toggle('fixed')">Make the div fixed</button>
<div id="element"></div>
</div>
js:
var el = document.querySelector("#element"),
elPos = el.getBoundingClientRect();
el.style.left = elPos.left + "px";
el.style.right = elPos.right + "px";
el.style.top = elPos.top + "px";
el.style.bottom = elPos.bottom + "px";
https://codepen.io/anon/pen/ajWaaM
var el = document.querySelector("#element"),
elPos = el.getBoundingClientRect();
el.style.left = elPos.left + "px";
el.style.right = elPos.right + "px";
el.style.top = elPos.top + "px";
el.style.bottom = elPos.bottom + "px";
body {
height: 150vh;
}
#container {
max-width: 1200px;
margin: auto;
}
#toggleFix {
margin-bottom: 1em;
font-size: 20px;
border: none;
padding: 10px 20px;
font-weight: bold;
position: fixed;
right: 20px;
bottom: 0;
}
#element {
background: black;
transition: all 0.3s ease;
width: 400px;
height: 300px;
}
#element.fixed {
position: fixed;
top: 845px !important;
left: 10px !important;
right: auto !important;
bottom: 10px !important;
width: 200px !important;
height: 150px !important;
}
<div id="container">
<button id="toggleFix" onclick="document.querySelector('#element').classList.toggle('fixed')">Make the div fixed</button>
<div id="element"></div>
</div>
【问题讨论】:
-
您能否更准确地解释一下按下按钮的结果?您的 JS 和 CSS 似乎相互矛盾。
-
我只是试图修复页面左下角的 div,当删除使其无法正常运行的类时,动画完全无序
标签: javascript css transition floating