zhangyao3287 发表于 2008-6-17 10:11

鼠标脱动,IE和FF不兼容

FF下报错 EventObject.setCapture is not a function

var EventObject = 0, Old_X, New_X;
function button_down(event){//拖动按钮按下事件
    event = event ? event :(window.event ? window.event : null);
    EventObject = event.srcElement ? event.srcElement : event.target;
    Old_X = event.clientX;
    EventObject.setCapture();
    }
function button_move(event){//拖动按钮移动事件
    if(EventObject){
        New_X = event.clientX;
                try{
        var MovePels = EventObject.style.pixelLeft+New_X-Old_X;
        var MaxBound = document.getElementById(EventObject.id+"Box").offsetWidth-EventObject.offsetWidth;
                }
        catch(e){}
        if(EventObject && MovePels <= MaxBound && MovePels >= 0){
            EventObject.style.pixelLeft += New_X-Old_X;
                        Old_X = New_X;
            }
        }
    }
function button_up(){//拖动按钮松开事件
    if(EventObject){
        EventObject.releaseCapture();
        EventObject = 0;
        }
    }

zhangyao3287 发表于 2008-6-18 08:54

有人看没人回啊

zhangyao3287 发表于 2008-6-18 18:00

人还是要靠自己啊


var EventObject = 0, Old_X, New_X;
var isIE = /msie/i.test(navigator.userAgent);
var isFF = /firefox/i.test(navigator.userAgent);
function button_down(event){//拖动按钮按下事件
    event = event ? event :(window.event ? window.event : null);
    EventObject = event.srcElement ? event.srcElement : event.target;
    Old_X = event.clientX;
        document.onmousemove = button_move;
        document.onmouseup = button_up;
        if(isIE)EventObject.setCapture();
        if(isFF)document.addEventListener("mousemove",button_move,true);
    }
function button_move(event){//拖动按钮移动事件
    event = event ? event :(window.event ? window.event : null);
    if(EventObject){
        New_X = event.clientX;
                try{
        var MovePels = parseInt(EventObject.style.left,10)+New_X-Old_X;
        var MaxBound = document.getElementById(EventObject.id+"Box").offsetWidth-EventObject.offsetWidth;
                }
        catch(e){}
        if(EventObject && MovePels <= MaxBound && MovePels >= 0){
            EventObject.style.left = parseInt(EventObject.style.left,10) + New_X-Old_X + "px";
                        Old_X = New_X;
                        document.getElementById("writer").innerHTML = EventObject.id + ":" +parseInt(EventObject.style.left,10);
            }
        }
    }
function button_up(){//拖动按钮松开事件
    if(EventObject){
                document.onmousemove = null;
                document.onmouseup = null;
                if(isIE)EventObject.releaseCapture();
                if(isFF)document.removeEventListener("mousemove",button_move,true);
        EventObject = 0;
        }
    }

页: [1]

编程论坛