javascript - 单滚动移动到下一部分的完整页面 View

标签 javascript jquery html css

我尝试创建单个滚动并移动到下一部分,我使用了 javascript,它工作不正常,窗口顶部距离不正确,我需要 div 全屏移动到下一个屏幕,请不要使用 jquery,请帮助

  	if (window.addEventListener) {window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;}

function wheel(event) {
    var delta = 0;
    if (event.wheelDelta) delta = (event.wheelDelta)/120 ;
    else if (event.detail) delta = -(event.detail)/3;

    handle(delta);
    if (event.preventDefault) event.preventDefault();
    event.returnValue = false;
}

function handle(sentido) {
    var inicial = document.body.scrollTop;
    var time = 500;
	var distance = 900;

  animate({
    delay: 0,
    duration: time,
    delta: function(p) {return p;},
    step: function(delta) {
window.scrollTo(0, inicial-distance*delta*sentido);   
    }
  });
}


function animate(opts) {
  var start = new Date();
  var id = setInterval(function() {
    var timePassed = new Date() - start;
    var progress = (timePassed / opts.duration);
    if (progress > 1) {progress = 1;}
    var delta = opts.delta(progress);
    opts.step(delta);
    if (progress == 1) {clearInterval(id);}}, opts.delay || 10);
}
body{
		width: 100%;
		height: 100%;
		margin:0;
		padding:0;
	}
	.wrapper{
		width: 100%;
		height: 100%;
		position: absolute;
	}

	section{
		width: 100%;
		height: 100%;
	}
	.pg1{
		background: green;
	}

	.pg2{
		background: blue;
	}

	.pg3{
		background: yellow;
	}
<div class="wrapper" id="myDiv">
	<section class="pg1" id="sec1"></section>
	<section  class="pg2"></section>
	<section  class="pg3"></section>

</div>

最佳答案

返回元素的高度并将其存储在距离变量中,而不是给它一个静态的 900。

来自这里:

var distance = 900;

对此:

var distance = document.getElementById('sec1').clientHeight;

关于javascript - 单滚动移动到下一部分的完整页面 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45048609/

相关文章:

javascript - 试图通过使用 d3 或任何其他方式找到一种在 html/js 中获取 csv 的行名和列名的方法?

JavaScript/React - 异步数组映射

javascript - Fetch 没有给我回复

javascript - onclick 选择选项标签奇怪地触发事件而不点击选项

javascript - 视频没有长高

html - 如何使用包含不同内容的同一个模板创建单独的文件和 grunt Baker?

JavaScript 最大表格大小

javascript - 如何实现对文本中自己的html标签的解析

javascript - JS 动态创建表格元素的点击事件

html - 如何在表格后居中分页按钮?文本对齐不起作用