摘要:本篇教程介绍了jQuery教程 插件jQuery.iviewer详解,希望阅读本篇文章以后大家有所收获,帮助大家对jQuery的理解更加深入。
本篇教程介绍了jQuery教程 插件jQuery.iviewer详解,希望阅读本篇文章以后大家有所收获,帮助大家对jQuery的理解更加深入。
<
效果如下:
但是应用的时候出现不能滚动放大缩小的问题,查看代码的时候发现封装的滚轮判断事件有点问题,返回的delta都为0,然后对jquery.iviewer.js的代码做了一些修改:
1、添加函数addWheelEvent来判断滚动方式
/**
* nomousewheel
**/
// 兼容所有浏览器
addWheelEvent: function (obj,efn){
//判断IE8还是非IE8
if(document.addEventListener){
//火狐还是非火狐
var oDiv = document.createElement("div");
if(oDiv.onmousewheel === null){
obj.addEventListener("mousewheel",fn,false);
}else{
obj.addEventListener("DOMMouseScroll", fn, false);
}
}else{
obj.attachEvent("onmousewheel", fn);
}
function fn(ev){
ev = ev || window.event;
var d = ev.wheelDelta/120 || -ev.detail/3;
var rs = efn.call(obj,ev,d);
if(rs === false){//禁止滚动条默认事件
ev.preventDefault && ev.preventDefault();
return false;
}
}
},
2、修改_create函数中的滚动事件:注释‘mousewheel.iviewer‘方法,改用前面新增的方法addWheelEvent
if (this.options.mousewheel) {
// this.container.bind(‘mousewheel.iviewer‘, function(ev, delta)
var obj = this.container.get(0);//将jQuery对象转化为DOM对象
this.addWheelEvent(obj,function(ev,delta)//使用新增方法
{
//this event is there instead of containing div, because
//at opera it triggers many times on div
var zoom = (delta > 0)?1:-1,
container_offset = me.container.offset(),
mouse_pos = {
//jquery.mousewheel 3.1.0 uses strange MozMousePixelScroll event
//which is not being fixed by jQuery.Event
x: (ev.pageX || ev.originalEvent.pageX) - container_offset.left,
y: (ev.pageY || ev.originalEvent.pageX) - container_offset.top
};
me.zoom_by(zoom, mouse_pos);
return false;
});
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端jQuery频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号