[英]Increase/Decrease variable on scroll
有沒有辦法在用戶向上滾動時增加變量,在用戶向下滾動JavaScript時減少? 變量沒有最大值或最小值,能夠調整靈敏度會很好。 我不知道從哪里開始,謝謝你的幫助!
編輯:沒有滾動條,因為頁面的內容適合屏幕,沒有額外的。 對不起,如果這引起任何混淆。
您可以使用window.scrollY
。 這是在從屏幕頂部的像素的距離,所以,如果你做-window.scrollY
得到它的增加 ,因為他們向上滾動,並減少 (變得更負),因為它們向下滾動,就像你問。
如果要調整靈敏度,可以將其除以任意值(在本例中為5
):
function getAdjustedScroll() {
const DIVIDE_AMOUNT = 5;
return -window.scrollY / DIVIDE_AMOUNT;
}
您還可以使用wheel
事件檢測非滾動頁面上的滾輪移動。
使用與原始類似的示例:
let scrollAmount = 0;
document.addEventListener('wheel', (event) => {
const DIVIDE_AMOUNT = 5;
scrollAmount += event.deltaY / DIVIDE_AMOUNT;
});
我想你正在尋找車輪事件 。 旋轉鼠標滾輪或類似設備時會觸發此事件,例如滾動時。 以下是如何使用它的示例:
var testDiv = document.getElementById("test-div"); var amount = 0; document.addEventListener("wheel", function(ev) { amount += ev.deltaY; testDiv.textContent = amount; });
<div id="test-div">SCORLL!</div>
筆記:
ev.deltaY
乘以代表靈敏度的數字: amount += 0.5 * ev.delta;
例如。 var testDiv = document.getElementById("test-div"); var amount = 0; document.addEventListener("wheel", function(ev) { amount += ev.deltaY; testDiv.textContent = 1000 * amount; });
<div id="test-div">SCORLL!</div>
ev.preventDefault()
來阻止實際滾動。 amount
變量仍將改變,但不會發生頁面滾動。 var testDiv = document.getElementById("test-div"); var amount = 0; document.addEventListener("wheel", function(ev) { amount += ev.deltaY; testDiv.textContent = amount; ev.preventDefault(); });
<div id="test-div">SCORLL!</div>
就在這里。 通過使用getBoundingClientRect(); 方法有4個選項: - 頂部,左側,底部和右側。進一步閱讀: https : //developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect
$("document").ready(function(){ $(window).scroll(function(){ let scrollValue = window.scrollY; let num = $("#num"); num.html(scrollValue); }); });
body { height: 2000px; text-align: center; } p { position: fixed; font-size: 70px; top: 0; }
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> <p>Scroll to view <span id="num"></span></p>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.