CSS 动画移动页面 - 使用 CSS 修复当前元素上的页面滚动位置
css animation moves page - fix page scroll position on current element with css?
给定以下简化问题:
foreach i in 1..100 do
<div onclick="$("div").attr('class','expand');">block i</div>
而这个css:
div {
height: 20px;
transition: height 0.5s;
}
div.expand {
height: 50px;
}
现在,当我单击一个div时,每个div都会得到"扩展"类。这意味着页面将展开。但是,一切都会向下滚动。这意味着如果我单击div 50,它可能不再出现在我的窗口中,我必须向下滚动才能再次看到它。
我很想让我点击的div 留在屏幕中央。这在CSS上是可能的,还是我需要JS?
有可能...你可以像这样使用 jQuery 的 .scrollTop()
方法:
$(window).scrollTop( $('.your_element').offset().top + $('.your_element').height() - $(window).height() );
此函数根据鼠标单击的位置滚动页面:
$(document).ready(function(){
$('div').click(function(e){
var offsetY = e.pageY - $(window).scrollTop();
$('div').attr('class','expand');
$(window).scrollTop($(this).offset().top-offsetY);
});
});
jsFiddle 上的示例
相关文章:
- jQuery-仅更改Y轴的CSS背景位置
- css/js:通过滚动固定位置
- 当涉及css缩放时,如何获得页面上的点击位置
- 更改CSS以允许使用Javascript控制DIV位置
- 如何使用 JavaScript 动态设置 DIV 元素的左侧和顶部 CSS 位置
- 如何指定除了一个区域之外的css位置?轨道
- 获取CSS位置转换,以不对窗口缩放做出反应
- CSS位置固定不工作-粘性导航
- 光线如何?项目在没有CSS位置或margin-top的情况下上下移动
- css位置:fixed在chrome和safari中滚动时不固定
- 使用JS或JQuery更改DIV中每个元素的CSS位置
- jQuery position方法,如果CSS位置稍后被设置为静态以外的任何内容,则返回不同的值
- 最干净的“重置”方法没有动画的CSS位置
- Meteor:登录按钮的CSS位置
- 用JS修改CSS位置
- 使用Javascript设置CSS位置
- jQuery CSS 位置右边不起作用
- 如何使用jQuery增加CSS Y位置坐标
- Css位置固定水平滚动,但垂直滚动
- Jquery show()在表演时破坏CSS位置属性