概述
/**
*滚动鼠标,判断是下滚还是上滚
*
* 判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;
* 两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个值,detail只取±3,wheelDelta只取±120,其中正数表示为向上,负数表示向下。
*/
let afterTop = 0;
const scrollFunc = function (e: any): void {
const beforeTop = Number($('#emoticonPackage .EmotionList-con').css("top").split('px')[0]);
e = e || window.event;
if (e.wheelDelta) {// IE/Opera/Chrome
if (e.wheelDelta === 120) {
afterTop = +beforeTop + 15;
}
if (e.wheelDelta === -120) {
afterTop = +beforeTop - 15;
}
} else if (e.detail) {// Firefox
if (e.detail === 3) {
afterTop = +beforeTop + 15;
}
if (e.detail === -3) {
afterTop = +beforeTop - 15;
}
}
if (afterTop >= 0) {
$('#emoticonPackage .EmotionList-con').css({ top: 0 + 'px' });
} else {
if (Math.abs(afterTop) + $('#box #emoticonPackage .EmotionList')[0].offsetHeight >= $('#emoticonPackage .EmotionList-con')[0].offsetHeight) {
$('#emoticonPackage .EmotionList-con').css({ top: $('#box #emoticonPackage .EmotionList')[0].offsetHeight - $('#emoticonPackage .EmotionList-con')[0].offsetHeight + 'px' });
} else {
$('#emoticonPackage .EmotionList-con').css({ top: afterTop + 'px' });
}
}
};
if (document.addEventListener) {
document.addEventListener('DOMMouseScroll', scrollFunc, false);
}// W3C
window.onmousewheel = scrollFunc; // IE/Opera/Chrome/Safari
}
public componentWillUnmount(): void {
if (document.addEventListener) {// 组件卸载后应将滚动事件给移除
document.addEventListener('DOMMouseScroll', () => { }, false);
}// W3C
window.onmousewheel = null; // IE/Opera/Chrome/Safari
}
最后
以上就是朴实冬天为你收集整理的滚动鼠标,判断是下滚还是上滚的全部内容,希望文章能够帮你解决滚动鼠标,判断是下滚还是上滚所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复