Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] Discuz!X2.5升级9.1的补丁后鼠标移到图片上会向上移动的临时解决办法

[复制链接]
1314学习网 发表于 2012-10-7 12:55:55 | 显示全部楼层 |阅读模式
本帖最后由 1314学习网 于 2012-10-8 13:51 编辑

最近好多用户发现升级9.1的补丁后鼠标移到图片上会向上移动,对于贴图较多的论坛而言,非常致命啊,这体验让用户感觉很不好。
相关问题:
鼠标移到图片上会向上移动
https://discuz.dismall.com/thread-3114722-1-1.html
鼠标放在图片上帖子自己动了
https://discuz.dismall.com/thread-3097878-1-1.html
鼠标移动到图片上面,浏览器会自动拉到完整显示这张图片
https://discuz.dismall.com/thread-3105239-1-1.html
从下往上浏览图片时,鼠标指针移动过两张图片交界处,页面会自动跑到顶端。
https://discuz.dismall.com/thread-3118220-1-1.html
谷歌浏览器,官方轻模板自动往上拉
https://discuz.dismall.com/thread-3122692-1-1.html
官方的轻模板鼠标移致图片时,会自动往上拉
https://discuz.dismall.com/thread-3101733-1-1.html

零时解决方案:


这个是
  1. showMenu({'ctrlid':this.id,'pos':'12'})
复制代码
引起的
X2.5的showMenu和X2的不同,增加了一些代码,不知道是出于什么考虑,没仔细看
function showMenu(v) {
var ctrlid = isUndefined(v['ctrlid']) ? v : v['ctrlid'];
var showid = isUndefined(v['showid']) ? ctrlid : v['showid'];
var menuid = isUndefined(v['menuid']) ? showid + '_menu' : v['menuid'];
var ctrlObj = $(ctrlid);
var menuObj = $(menuid);
if(!menuObj) return;
var mtype = isUndefined(v['mtype']) ? 'menu' : v['mtype'];
var evt = isUndefined(v['evt']) ? 'mouseover' : v['evt'];
var pos = isUndefined(v['pos']) ? '43' : v['pos'];
var layer = isUndefined(v['layer']) ? 1 : v['layer'];
var duration = isUndefined(v['duration']) ? 2 : v['duration'];
var timeout = isUndefined(v['timeout']) ? 250 : v['timeout'];
var maxh = isUndefined(v['maxh']) ? 600 : v['maxh'];
var cache = isUndefined(v['cache']) ? 1 : v['cache'];
var drag = isUndefined(v['drag']) ? '' : v['drag'];
var dragobj = drag && $(drag) ? $(drag) : menuObj;
var fade = isUndefined(v['fade']) ? 0 : v['fade'];
var cover = isUndefined(v['cover']) ? 0 : v['cover'];
var zindex = isUndefined(v['zindex']) ? JSMENU['zIndex']['menu'] : v['zindex'];
var ctrlclass = isUndefined(v['ctrlclass']) ? '' : v['ctrlclass'];
var winhandlekey = isUndefined(v['win']) ? '' : v['win'];
zindex = cover ? zindex + 500 : zindex;
if(typeof JSMENU['active'][layer] == 'undefined') {
JSMENU['active'][layer] = [];
}
for(i in EXTRAFUNC['showmenu']) {
try {
eval(EXTRAFUNC['showmenu'] + '()');
} catch(e) {}
}
if(evt == 'click' && in_array(menuid, JSMENU['active'][layer]) && mtype != 'win') {
hideMenu(menuid, mtype);
return;
}
if(mtype == 'menu') {
hideMenu(layer, mtype);
}
if(ctrlObj) {
if(!ctrlObj.getAttribute('initialized')) {
ctrlObj.setAttribute('initialized', true);
ctrlObj.unselectable = true;
ctrlObj.outfunc = typeof ctrlObj.onmouseout == 'function' ? ctrlObj.onmouseout : null;
ctrlObj.onmouseout = function() {
if(this.outfunc) this.outfunc();
if(duration < 3 && !JSMENU['timer'][menuid]) {
JSMENU['timer'][menuid] = setTimeout(function () {
hideMenu(menuid, mtype);
}, timeout);
}
};
ctrlObj.overfunc = typeof ctrlObj.onmouseover == 'function' ? ctrlObj.onmouseover : null;
ctrlObj.onmouseover = function(e) {
doane(e);
if(this.overfunc) this.overfunc();
if(evt == 'click') {
clearTimeout(JSMENU['timer'][menuid]);
JSMENU['timer'][menuid] = null;
} else {
for(var i in JSMENU['timer']) {
if(JSMENU['timer']) {
clearTimeout(JSMENU['timer']);
JSMENU['timer'] = null;
}
}
}
};
}
}
if(!menuObj.getAttribute('initialized')) {
menuObj.setAttribute('initialized', true);
menuObj.ctrlkey = ctrlid;
menuObj.mtype = mtype;
menuObj.layer = layer;
menuObj.cover = cover;
if(ctrlObj && ctrlObj.getAttribute('fwin')) {menuObj.scrolly = true;}
menuObj.style.position = 'absolute';
menuObj.style.zIndex = zindex + layer;
menuObj.onclick = function(e) {
return doane(e, 0, 1);
};
if(duration < 3) {
if(duration > 1) {
menuObj.onmouseover = function() {
clearTimeout(JSMENU['timer'][menuid]);
JSMENU['timer'][menuid] = null;
};
}
if(duration != 1) {
menuObj.onmouseout = function() {
JSMENU['timer'][menuid] = setTimeout(function () {
hideMenu(menuid, mtype);
}, timeout);
};
}
}
if(cover) {
var coverObj = document.createElement('div');
coverObj.id = menuid + '_cover';
coverObj.style.position = 'absolute';
coverObj.style.zIndex = menuObj.style.zIndex - 1;
coverObj.style.left = coverObj.style.top = '0px';
coverObj.style.width = '100%';
coverObj.style.height = Math.max(document.documentElement.clientHeight, document.body.offsetHeight) + 'px';
coverObj.style.backgroundColor = '#000';
coverObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=50)';
coverObj.style.opacity = 0.5;
coverObj.onclick = function () { hideMenu(); };
$('append_parent').appendChild(coverObj);
_attachEvent(window, 'load', function () {
coverObj.style.height = Math.max(document.documentElement.clientHeight, document.body.offsetHeight) + 'px';
}, document);
}
}
if(drag) {
dragobj.style.cursor = 'move';
dragobj.onmousedown = function(event) {try{dragMenu(menuObj, event, 1);}catch(e){}};
}
if(cover) $(menuid + '_cover').style.display = '';
if(fade) {
var O = 0;
var fadeIn = function(O) {
if(O > 100) {
clearTimeout(fadeInTimer);
return;
}
menuObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + O + ')';
menuObj.style.opacity = O / 100;
O += 20;
var fadeInTimer = setTimeout(function () {
fadeIn(O);
}, 40);
};
fadeIn(O);
menuObj.fade = true;
} else {
menuObj.fade = false;
}
menuObj.style.display = '';
if(ctrlObj && ctrlclass) {
ctrlObj.className += ' ' + ctrlclass;
menuObj.setAttribute('ctrlid', ctrlid);
menuObj.setAttribute('ctrlclass', ctrlclass);
}
if(pos != '*') {
setMenuPosition(showid, menuid, pos);
}
if(BROWSER.ie && BROWSER.ie < 7 && winhandlekey && $('fwin_' + winhandlekey)) {
$(menuid).style.left = (parseInt($(menuid).style.left) - parseInt($('fwin_' + winhandlekey).style.left)) + 'px';
$(menuid).style.top = (parseInt($(menuid).style.top) - parseInt($('fwin_' + winhandlekey).style.top)) + 'px';
}
if(maxh && menuObj.scrollHeight > maxh) {
menuObj.style.height = maxh + 'px';
if(BROWSER.opera) {
menuObj.style.overflow = 'auto';
} else {
menuObj.style.overflowY = 'auto';
}
}
if(!duration) {
setTimeout('hideMenu(\'' + menuid + '\', \'' + mtype + '\')', timeout);
}
if(!in_array(menuid, JSMENU['active'][layer])) JSMENU['active'][layer].push(menuid);
menuObj.cache = cache;
if(layer > JSMENU['layer']) {
JSMENU['layer'] = layer;
}
var hasshow = function(ele) {
while(ele.parentNode && ((typeof(ele['currentStyle']) === 'undefined') ? window.getComputedStyle(ele,null) : ele['currentStyle'])['display'] !== 'none') {
ele = ele.parentNode;
}
if(ele === document) {
return true;
} else {
return false;
}
};
if(!menuObj.getAttribute('disautofocus')) {
try{
var focused = false;
var tags = ['input', 'select', 'textarea', 'button', 'a'];
for(var i = 0; i < tags.length; i++) {
var _all = menuObj.getElementsByTagName(tags);
if(_all.length) {
for(j = 0; j < _all.length; j++) {
if((!_all[j]['type'] || _all[j]['type'] != 'hidden') && hasshow(_all[j])) {
_all[j].className += ' hidefocus';
_all[j].focus();
focused = true;
var cobj = _all[j];
_attachEvent(_all[j], 'blur', function (){cobj.className = trim(cobj.className.replace(' hidefocus', ''));});
break;
}
}
}
if(focused) {
break;
}
}
if(!focused) {
menuObj.focus();
}
} catch (e) {
}
}

}

红色为X2.5增加的代码删掉增加的代码即可解决这个问题,不知道是否会有后遗症
打开:static\js\common.js
删除 1046-1084 行的代码,然后更新后台缓存及本地浏览器缓存
大家可以自己试试是删掉的哪部分js代码引起的,我就不测试了,全删反正可以解决问题

原文地址Discuz!X2.5升级9.1的补丁后鼠标移到图片上会向上移动的解决办法,转载请注明出处

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

chenkb 发表于 2012-10-20 15:30:17 | 显示全部楼层
我dz官网这也有这个问题,我也发贴问了,都说没有发现,唉,真是服了,我们这么多人都发现,还提出来了,他们还说没有发现移动情况。还是楼主比较给力
回复

使用道具 举报

。See_you_tomor 发表于 2012-10-7 12:58:44 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

 发表于 2012-10-7 13:10:47
学习了[tthread=shijiexuexi, sjxj世界学习室-马林]http://app.qlogo.cn/mbloghead/6b58186ea7cf5d62eadc[/tthread]
回复

使用道具

[游民部落] 发表于 2012-10-7 13:11:56 | 显示全部楼层
没升级...........................{:soso_e106:}
回复

使用道具 举报

dicky57 发表于 2012-10-7 13:14:04 | 显示全部楼层
感謝您的熱情分享
回复

使用道具 举报

军刀闪亮 发表于 2012-10-7 13:15:15 | 显示全部楼层
还没升级到0901 不敢啊 估计这个问题短时间内官方是不会管的了 先收藏了 有机会升级的时候能用得上
回复

使用道具 举报

 楼主| 1314学习网 发表于 2012-10-7 13:18:19 | 显示全部楼层
[游民部落] 发表于 2012-10-7 13:11
没升级...........................

我也是,而且可能永远不升级了,没什么必要
回复

使用道具 举报

点触验证码 发表于 2012-10-7 15:38:11 | 显示全部楼层
给力~~有机会当面交流一下啊~~
回复

使用道具 举报

蚂蚁逛长城 发表于 2012-10-8 21:35:44 | 显示全部楼层
认真看看,怎么回事,官方发布修改方案了吗
回复

使用道具 举报

withwind 发表于 2012-10-8 22:08:07 | 显示全部楼层
新装的,遇到了这个问题。谢谢分享。收藏先。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-3-1 12:04 , Processed in 0.043986 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表