幽灵资源网 Design By www.bzswh.com
今天弄了一个东西,页面本来是横向,所以底部有横向滚动条,竖着就没有滚动条了,现在要求是鼠标滑轮要左右滚动,这就需要写js代码来实现了,写这个的过程中遇到很大麻烦
ie 火狐 chrome 三个浏览器支持的函数完全不一样,真是疯啦。
这里有几个知识点说明一下
监控滑轮的事件
ie:onmousewheel
firfox:DOMMouseScroll
chrome:mousewheel
哎真是无语
滚动的返回值也是不一样的
firfox用detail 返回 +-3
其他的用wheelDelta 返回 +-120
有返回值判断滚动的方向
还有一般浏览器除了chrome判断页面的左移动用document.documentElement.scrollLeft
但是chrome浏览器要用document.body.scrollLeft
好了代码分享如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <div id="test" style="width:3000px; height:500px; background:#666;"></div> <script language="javascript"> var dbody=document.getElementById('test'); //ff用 objAddEvent(document,'DOMMouseScroll', function(e){return mouse_scroll(e);}) //非ff chrome 用 objAddEvent(document,'mousewheel', function(e){return mouse_scroll(e);}) //chrome用 objAddEvent(dbody,'mousewheel', function(e){return mouse_scroll(e);}) function mouse_scroll(e){ e=e || window.event; var delD=e.wheelDelta?e.wheelDelta: -e.detail*40;//判断上下方向 var move_s=delD>0?-50:50; document.documentElement.scrollLeft+=move_s; //非chrome浏览器用这个 //chrome浏览器用这个 if(document.documentElement.scrollLeft==0)document.body.scrollLeft+=move_s; return false; } //这个是给对象增加监控方法的函数 function objAddEvent(oEle, sEventName, fnHandler) { if(oEle.attachEvent) oEle.attachEvent('on'+sEventName, fnHandler); else oEle.addEventListener(sEventName, fnHandler, false); } </script> </body> </html>
这个代码其实有点问题就是在chrome浏览器下只有鼠标放到那个灰色内才能滑动,这个问题我一直没有解决掉,如果那个高手解决可以留言告诉我,谢谢了。
标签:
Js,控制滑轮,左右滑动
幽灵资源网 Design By www.bzswh.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
幽灵资源网 Design By www.bzswh.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。