jquery - 如果您只做一个小的滚动轻推或冲动,则滚动到元素
问题描述
我试图在用户开始滚动时自动滚动到一个元素,即只给出一个小的滚动冲动或轻推。因此,当用户开始向下滚动时,它应该自动将页面向上移动到下一部分。如果他开始向上滚动,页面应该会自动向上移动到上一部分。不知何故,我到目前为止的代码只是让一切变得非常不协调。
我希望滚动在这里像这样工作:https ://www.redlinespecialistcars.co.uk
jsfiddle 演示在这里:https ://jsfiddle.net/ch2Lg6vq
$(document).ready(function() {
var browserheight = $(window).height();
$(window).on('scroll', function() {
$('.control-parent').each(function() {
var scrollTop = $(window).scrollTop();
var elementOffset = $(this).offset().top;
var distance = (elementOffset - scrollTop);
if (distance >= browserheight - 2) {
$([document.documentElement, document.body]).animate({
scrollTop: $(this).offset().top
}, 1000);
}
if (distance <= browserheight - 2) {
// do sthg else
}
}); // end for each
}); // end on.scroll
}); // end document.ready
html,body{
width:100%;
height:100%;
position:relative;
}
.control-parent{
width:100%;
height:100%;
position:relative;
background-color:#eeeeee;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="control-parent">
1
</div>
<div class="control-parent">
2
</div>
<div class="control-parent">
3
</div>
<div class="control-parent">
4
</div>
解决方案
推荐阅读
- coldfusion - 如何在 ColdFusion 中显示度数和撇号?
- azure - 用 azure 记录和保存更改日志的最佳方式是什么?
- linux - Azure Devops Deploy to Web APP 可能导致停机
- java - 是否可以使用 MapStruct 从 HashMap 转换为 List
- c++ - 使用 auto 访问类的私有结构
- laravel - laravel 的环境文件 .env 总是在开发过程中自行清理
- javascript - 在 setState 上使用 JavaScript Date 对象时,React hook useState 不会更新 UI
- reactjs - 如何解决反应渲染中的意外令牌错误。你的意思是“{'{'”还是“&brace;”?
- python - Python3 Pygame:draw.circle 的元组类型错误
- reactjs - Accordion - 从映射数组中打开第一个选项卡 - React TS