Raphaël 鼠标拖动,滚轮缩放js代码详解编程语言

$(window).load(function() { 
    var p = Raphael('canvas'); 
    p.cx = 0, p.cy = 0, p.cs = 1; 
    p.canvas.style.backgroundColor = '#008080'; 
    $(window).resize(function() { 
        p.setSize($('#canvas').width(), $('#canvas').height()); 
    }); 
    $(p.canvas).on('mousedown', function(e) { 
        if (e.target == p.canvas) { 
            this.ox = e.offsetX; 
            this.oy = e.offsetY; 
        } 
    }); 
    $(p.canvas).on('mousemove', function(e) { 
        if (e.target == p.canvas && this.ox) { 
            var size = p.getSize(); 
            p.cx = p.cx - (e.offsetX - this.ox) / p.cs; 
            p.cy = p.cy - (e.offsetY - this.oy) / p.cs; 
            p.setViewBox(p.cx, p.cy, size.width / p.cs, size.height / p.cs); 
            this.ox = e.offsetX; 
            this.oy = e.offsetY; 
        } 
    }); 
    $(p.canvas).on('mouseup', function(e) { 
        if (e.target == p.canvas && this.ox) { 
            delete this.ox; 
            delete this.oy; 
        } 
    }); 
    $(p.canvas).on('mousewheel', function(e) { 
        if (e.target == p.canvas) { 
            var size = p.getSize(); 
            p.cs2 = e.originalEvent.wheelDelta > 0 ? p.cs * 1.125 : p.cs / 1.125; 
            p.cx = p.cx + (e.offsetX / p.cs - e.offsetX / p.cs2); 
            p.cy = p.cy + (e.offsetY / p.cs - e.offsetY / p.cs2); 
            p.cs = p.cs2; 
            p.setViewBox(p.cx, p.cy, size.width / p.cs, size.height / p.cs); 
        } 
        return false; 
    }); 
    for (var i = 0; i < 200; i++) { 
        var r = Math.random; 
        p.rect(700 * r(), 500 * r(), 100 * r(), 100 * r()).attr('fill', '#00ffff'); 
    } 
});

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/8860.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论