improved zooming
This commit is contained in:
@@ -18,18 +18,18 @@ class EnvironmentController extends CanvasController{
|
|||||||
|
|
||||||
defineZoomControls() {
|
defineZoomControls() {
|
||||||
var scale = 1;
|
var scale = 1;
|
||||||
var zoom_speed = 0.5;
|
var zoom_speed = 0.7;
|
||||||
const el = document.querySelector('#env-canvas');
|
const el = document.querySelector('#env-canvas');
|
||||||
el.onwheel = function zoom(event) {
|
el.onwheel = function zoom(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
var sign = Math.sign(event.deltaY);
|
var sign = Math.sign(event.deltaY);
|
||||||
|
|
||||||
// Update the scale by multiplying it with the zoom speed raised to the power of the scroll direction (positive or negative)
|
|
||||||
scale *= Math.pow(zoom_speed, sign);
|
scale *= Math.pow(zoom_speed, sign);
|
||||||
|
|
||||||
// Make sure the scale doesn't go below a minimum value or above a maximum value
|
const MAX = 32;
|
||||||
scale = Math.min(64, Math.max(Math.pow(2, -10), scale));
|
const MIN = Math.pow(2, -3);
|
||||||
|
scale = Math.min(MAX, Math.max(MIN, scale));
|
||||||
|
|
||||||
var cur_top = parseInt($('#env-canvas').css('top'));
|
var cur_top = parseInt($('#env-canvas').css('top'));
|
||||||
var cur_left = parseInt($('#env-canvas').css('left'));
|
var cur_left = parseInt($('#env-canvas').css('left'));
|
||||||
@@ -157,8 +157,8 @@ class EnvironmentController extends CanvasController{
|
|||||||
}
|
}
|
||||||
|
|
||||||
dragScreen() {
|
dragScreen() {
|
||||||
var cur_top = parseInt($('#env-canvas').css('top'), 10);
|
var cur_top = parseInt($('#env-canvas').css('top'));
|
||||||
var cur_left = parseInt($('#env-canvas').css('left'), 10);
|
var cur_left = parseInt($('#env-canvas').css('left'));
|
||||||
var new_top = cur_top + ((this.mouse_y - this.start_y)*this.scale);
|
var new_top = cur_top + ((this.mouse_y - this.start_y)*this.scale);
|
||||||
var new_left = cur_left + ((this.mouse_x - this.start_x)*this.scale);
|
var new_left = cur_left + ((this.mouse_x - this.start_x)*this.scale);
|
||||||
$('#env-canvas').css('top', new_top+'px');
|
$('#env-canvas').css('top', new_top+'px');
|
||||||
|
|||||||
Reference in New Issue
Block a user