Javascript 在按钮上固定滚动位置单击特定滚动位置
第三天,尝试使用纯CSS的方式(没有iScrolls,没有niceScroll)。我想要的似乎很简单:滚动页面,当单击按钮时,我希望页面停止滚动(将位置设置为固定),并将页面保持在该位置(而不是一直跳到顶部)。我想我的CSS可能有问题,但我有以下几点:Javascript 在按钮上固定滚动位置单击特定滚动位置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,第三天,尝试使用纯CSS的方式(没有iScrolls,没有niceScroll)。我想要的似乎很简单:滚动页面,当单击按钮时,我希望页面停止滚动(将位置设置为固定),并将页面保持在该位置(而不是一直跳到顶部)。我想我的CSS可能有问题,但我有以下几点: body{ padding: 0; margin: 0; border: 0; } #wrapper{
body{
padding: 0;
margin: 0;
border: 0;
}
#wrapper{
position: absolute;
z-index: 1;
width: 100%;
left: 0;
overflow: auto;
}
header{
z-index: 2;
top: 0; left: 0;
width: 100%;
height: 50px;
background-color: black;
padding: 0;
text-align: center;
color: white;
}
html
主要新闻
与onclick链接
与onclick链接
与onclick链接
与onclick链接
与onclick链接
与onclick链接
与onclick链接
//更多李的链接
var x;
函数某物{
x=$('body').scrollTop();
$('body').css({
位置:'固定'
});
});
函数somethingelse(){
$('body').css({
位置:“”
});
$('body')。滚动顶部(x);
}
我检查了警报,滚动位置保存在变量x中。我做错了什么
编辑1:我还想添加链接是动态添加的…也许这就是它一直滚动到顶部的原因?没有固定高度?我不确定这是否正是您想要的,但我制作了一个JSFIDLE演示如何在用户单击链接后“锁定”(或切换)文档滚动。您可以基于以下内容创建解决方案:
var ScrollHandler = (function() {
//Assumes jQuery has initialized
var hasScrollListener = false;
var toggleScrollLock = function() {
if(!hasScrollListener) {
$('body').css('overflow', 'hidden');
$('.freezeScroll').css('color', '#ff0000');
}
else {
$('body').css('overflow', '');
$('.freezeScroll').css('color', '#0000ff');
}
hasScrollListener = !hasScrollListener;
}
//Return a public toggle method
return {
toggleScrollLock: toggleScrollLock
};
});
$(document).ready(function() {
var scrollHandler = new ScrollHandler(),
links = $('.freezeScroll');
links.each(function(i, element) {
$(element).on('click', function(e) { scrollHandler.toggleScrollLock(); });
});
});
只需确保修改列表项以包含冻结滚动类:
<ul class="freezeScroll">link with onclick</ul>
用onclick链接
您缺少
函数something()
的右括号。可能是打字错误?@user2025469查看此示例,禁用滚动而不重置内容位置选项@FaisalSayed抱歉,这是一个打字错误,我的原始代码中有右括号。@srk,如果不使用外部库,是否无法使用纯css执行此操作?@user2025469使用简单的JQuery,您可能想了解使用JQuery>是如何实现的,这将帮助您获得解决方案,或者您正在寻找没有JQuery的解决方案?谢谢,它看起来可以工作,但我最终找到了如何在一个页面中的几个div上实现iScroll。我需要做的是在包装器中添加另一个div,这样就不会滚动正文,而是滚动包装器中的内容。谢谢你的帮助,我可能会用这个做点别的!
<ul class="freezeScroll">link with onclick</ul>