js 检测鼠标滚轮上下滚动

js检测鼠标滚轮上下滚动初始值i为1滚动一下i+1直到i=4为止滚轮往上滚时i开始减一减到1为止如果能写JQuery就更好了... js 检测鼠标滚轮上下滚动 初始值i为1 滚动一下 i+1 直到i=4 为止 滚轮往上滚时 i开始减一 减到1为止

如果能写JQuery就更好了
展开
 我来答
hebbe_小小
2014-03-01 · TA获得超过526个赞
知道答主
回答量:54
采纳率:0%
帮助的人:35.6万
展开全部
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int delta; //一次滑动量 TCHAR szMessage[120]; static int time; //最后一次滚动时的时间值 static int start; //第一次滚动前的刻度值 static int index=10; //最后一次滚动后的刻度值 static BOOL bStart=FALSE; //是否第一次滚动鼠标 switch (message) { case WM_CREATE: SetTimer(hWnd,500,500,NULL); break; case WM_MOUSEWHEEL: delta=GET_WHEEL_DELTA_WPARAM(wParam); if(delta>0) { int line=delta/40; if(line+index<=100) //放大位图逻辑 { if(!bStart) { start=index; //记录第一次刻度值 } index+=line; //刷新最近刻度值 _stprintf(szMessage,_T("向上滚动%d行\n"),line); time=GetTickCount(); bStart=TRUE; OutputDebugString(szMessage); } } else { int line=-delta/40; if(index-line>=0) //缩小位图逻辑 { if(!bStart) start=index; index-=line; _stprintf(szMessage,_T("向下滚动%d行\n"),line); time=GetTickCount(); //刷新当前时间值 bStart=TRUE; OutputDebugString(szMessage); } } break; case WM_TIMER: { int tick=GetTickCount(); if(bStart && tick-time>500) //如果前后两次滚动事件超过半秒,开始绘图 { bStart=FALSE; int sub=index-start; //sub为正放大位图,为负缩小位图 TCHAR szMess[100]; _stprintf(szMess,_T("尺寸改变了%d个单位 当前刻度%d\n"),sub,index); OutputDebugString(szMess); //执行绘图 } } break; case WM_DESTROY: ::KillTimer(hWnd,500); PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
yugi111
2014-02-20 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
onmousewheel
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式