js,鼠标上下滑轮或者拉动滚动条触发事件

js,鼠标上下滑轮或者拉动滚动条触发事件,第1张

windowonmousewheel = function(){  //触发滚轮事件

}

windowonscroll = function(){  //滚动条事件

}

//其实你的问题直接使用判断滚动条应该就可以了,但是如果一定要拖动滚动条才执行事件,我们可以通过获取鼠标位置来模拟

var a = documentgetElementsByTagName("html")[0];

windowonmousemove = function(){

        //一般默认滚动条12px宽,当鼠标位于浏览器窗口右边12px内按下鼠标可以视为拖动滚动条

if(innerWidth - eventclientX < 12){

aonmousedown = function(){

consolelog(1);

}

}else{

aonmousedown = null;

}

}

目标描述:多个排列下来,按右边的小按钮,抵达相应位置,鼠标滑动,抵达下一图,或者上一图

知识点:onmousewheel,addEventListener,scrollTo,setTimeout

过程:

1body 宽,高钉死,100vw,100vh,overflow:hidden 使得不出现滚动条,不然不好看

2放进去,排起来,(注意:默认空隙的处理,可以使用flex布局,空隙就不见了)

3制作相对于视窗的按钮,几张就几个按钮,(position: fixed;计算一下高度,可以利用calc计算top使得上下居中)

4美化一下,css写写

5先写简单的按钮事件

6写监听滑动事件(onmousewheel在火狐无效,DOMMouseScroll只在火狐有效)

react在componentDidMount的时候监听

7补充写一下火狐的

9测试检查一下。

完成啦,啦啦啦~

我的截图:

缺点:这里我是一直对页面进行监听,导致滑动过快对时候动画效果开始执行对时间延后。体现为滑动对轻,整个就流畅一点。

ps:写这种带计算带页面,我觉得是考验思维的,你可以对这里的知识点不熟练,但是你必须得能理解每一步的加加减减。

<DIV ID=oDiv STYLE="overflow:scroll; width:200; height:100"> </DIV>

<BUTTON onclick="alert(oDivclientHeight)">client height</BUTTON>

<BUTTON onclick="alert(oDivoffsetHeight)">offset heightY</BUTTON>

这段代码你应该看得懂,这里你要搞清楚四个属性:

clientHeight:获取对象的高度,不计算任何边距、边框、滚动条或可能应用到该对象的补白。

clientWidth:获取对象的宽度,不计算任何边距、边框、滚动条或可能应用到该对象的补白。

offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度。

offsetWidth:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度。

详细的属性请参阅Dhtml手册

<div id="myDiv"></div>

<script type="text/javascript">

documentgetElementById("myDiv")clientHeight>600 {documentgetElementById("myDiv")styleoverflow="scroll";} : {documentgetElementById("myDiv")styleoverflow="none";};

</script>

以上就是关于js,鼠标上下滑轮或者拉动滚动条触发事件全部的内容,包括:js,鼠标上下滑轮或者拉动滚动条触发事件、js控制页面滚动(实例)、javascript如何获得div去掉滚动条部分的高和宽等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9571057.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存