这个js如何兼容各个浏览器

nitaiyoucala 2019-03-21 08:43:21

//激发滚轮
(function () {
var body = document.body;
var parent = window.parent;
if (parent && ("createEvent" in document)) {
var isoldie = ("documentMode" in document); // 11-
var ismsedge = ("msCredentials" in window); // MS Edge 14+
function onwheel(e) {
var evt = document.createEvent("MouseEvents");
evt.initEvent('wheel', true, true);
evt.deltaMode = e.deltaMode;
evt.deltaX = e.deltaX;
evt.deltaY = e.deltaY;
evt.deltaZ = e.deltaZ;
evt.wheelDelta = e.wheelDelta;
evt.wheelDeltaX = e.wheelDeltaX;
evt.wheelDeltaY = e.wheelDeltaY;

//如果父页面是$('html').niceScroll();用这个
//parent.dispatchEvent(evt);

////如果要使父页面的某个滚动条触发,则用下面这个,id换一下
parent.document.getElementById('mainFrame').dispatchEvent(evt);
}
body.addEventListener("wheel", onwheel);

}

})();
...全文
598 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独的天才 2019-03-27
  • 打赏
  • 举报
回复
addEventListen支持谷歌和火狐,不只吃ie8你可以用attachEvent进行兼容代码
yoonhi_ 2019-03-23
  • 打赏
  • 举报
回复
主要是addEventListener这个事件只支持w3c内核,所以要兼容ie内核的话,需要封装一个判断的函数.使它检测到不同浏览器时,执行不同的代码块.
nitaiyoucala 2019-03-22
  • 打赏
  • 举报
回复
求指导。谢谢。。。。。
qq_783939100 2019-03-22
  • 打赏
  • 举报
回复
主要是指那个浏览器?
丰云 2019-03-22
  • 打赏
  • 举报
回复
用jquery吧

// jquery 兼容的滚轮事件
$(document).on("mousewheel youDomSelector", function (e) {
    
    var delta = (e.originalEvent.wheelDelta && (e.originalEvent.wheelDelta > 0 ? 1 : -1)) ||  // chrome & ie
                (e.originalEvent.detail && (e.originalEvent.detail > 0 ? -1 : 1));              // firefox

    
    if (delta > 0) {
        // 向上滚
        console.log("wheelup");
    } else if (delta < 0) {
        // 向下滚
        console.log("wheeldown");
    }
});

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧