最近好多用户发现升级9.1的补丁后鼠标移到图片上会向上移动,对于贴图较多的论坛而言,非常致命啊,这体验让用户感觉很不好。
相关问题:
1.鼠标移动到图片上面,浏览器会自动拉到完整显示这张图片
之前有人提过这个问题,我也有这个问题
还有一个全新安装的也是这个问题,不知道是不是环境配置的问题,nginx1.2.3,php5.1.7,mysql5.1.6
2.官方的轻模板鼠标移致图片时,会自动往上拉
我使用的是轻模板,发现一个让人很不爽的功能,就是鼠标移动到上一张图片上时,浏览器会自动往上拉,拉到能完整的看到上面的那张图片就停下。请问我怎么样取消这功能,这功能不好用,最大的坏处就是,如果用谷歌浏览器的话,会直接回到帖子顶部。
不知道是不是功能来的,偶尔发生,反正只要迅速往下拉,例如拉到第三张图片,看到半张第二张图片时,把鼠标放到第二张图片上,就会自动往上拉了
3.鼠标放在图片上帖子自己动了
鼠标放在图片上帖子自己向上动了,有时候向上动一两图片,有时向上运动三四个图片。
4.鼠标移到图片上会向上移动
2.5的版本 升级9.1的补丁后。
出现一个问题,在多图片的时候,移到下面的一个图片,会自动向上移动,不知道设计这个意图是什么。但是带来很大的不变。用户点下载都点不到,一直跳。
5.谷歌浏览器,官方轻模板自动往上拉
当图片只显示下面局部时,鼠标光标移动到图片上,马上会弹回顶部。
因为之前发过相关问题,官方称检测不到,这次我故意去网吧试,换了几台机,都是这样。
PS:图片在同一楼层才会出现该问题。
注意:测试环境是 WIN7+谷歌浏览器
如果用IE的话,效果会非常美妙,就是移动到显示该图片头部就停了,但是谷歌浏览器会回到帖子顶部
6. 从下往上浏览图片时,鼠标指针移动过两张图片交界处,页面会自动跑到顶端
帖子中包含至少2张图片,图片越多,演示起来越容易发现问题。建议选择4张图片以上的帖子。
BUG描述:
Chrome/火狐浏览器:
当用户从下往上浏览图片时,鼠标指针移动过两张图片交界处,页面会自动跑到第一张图片上。
IE9浏览器:
当用户从下往上浏览图片时,鼠标指针移动过两张图片交界处,页面会自动跑到当前图片的中间。
补充说明:
最开始我以为是模板和插件的问题,但是当我换回默认风格模板并关闭插件,问题依旧存在,所以应当是系统的问题。
另外,我在论坛上发现和我有类似问题的帖子,问题没解决,但是被管理员标注了"已解决"字样。
我认为,可能是由于那位仁兄没有把问题描述清楚。(但是实际问题是和我一样的)
下边是1314学习网给出的解决方案:
这个是- 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
大家可以自己试试是删掉的哪部分js代码引起的,我就不测试了,全删反正可以解决问题
|
上一篇: 首页N格怎么修改文字为维吾尔文?下一篇: Discuz X站点任务不显示“完成此任务所需条件”的修改办法
|