当前位置: 首页 > 知识库问答 >
问题:

当鼠标移动时,缩放图像到光标中断

詹夕
2023-03-14

但是,当移动鼠标指针时,该功能将被破坏。

为了进一步澄清,如果我在鼠标轮上放大一个缺口,图像就会在正确的位置周围放大。这种行为在我放大鼠标轮的每一个缺口上都继续进行,完全如预期的那样。但是,如果在放大一部分后,我将鼠标移到不同的位置,功能就会中断,我必须完全缩小以改变缩放位置。

预期的行为是为了在缩放过程中鼠标位置的任何变化都能正确地反映在缩放的图像中。

self.container.on('mousewheel', function (e, delta) {
        var offset = self.image.offset();

        self.mouseLocation.x = (e.pageX - offset.left) / self.currentscale;
        self.mouseLocation.y = (e.pageY - offset.top) / self.currentscale;

        if (!self.running) {
            self.running = true;
            self.animateLoop();
        }
        self.delta = delta
        self.smoothWheel(delta);
        return false;
    });
zoom: function (scale) {

    var self = this;
    self.currentLocation.x += ((self.mouseLocation.x - self.currentLocation.x) / self.currentscale);
    self.currentLocation.y += ((self.mouseLocation.y - self.currentLocation.y) / self.currentscale);

    var compat = ['-moz-', '-webkit-', '-o-', '-ms-', ''];
    var newCss = {};
    for (var i = compat.length - 1; i; i--) {
        newCss[compat[i] + 'transform'] = 'scale(' + scale + ')';
        newCss[compat[i] + 'transform-origin'] = self.currentLocation.x + 'px ' + self.currentLocation.y + 'px';
    }
    self.image.css(newCss);


    self.currentscale = scale;
},

虽然这对于当图像完全缩小时选择的固定鼠标位置非常有效;如上所述,当鼠标光标在部分缩放后移动时,它就会中断。

事先非常感谢任何能帮忙的人。

共有1个答案

赵才俊
2023-03-14

其实不太复杂。您只需将鼠标位置更新逻辑与缩放更新逻辑分开即可。查看我的小提琴:http://jsfiddle.net/qggwx/41/

我在这里所做的就是在容器上添加一个'mousemove'侦听器,并将self.mouseLocation更新逻辑放入其中。由于不再需要mouseLocation更新逻辑,我还从'mouseWheel'处理程序中取出了mouseLocation更新逻辑。动画代码保持不变,何时开始/停止动画循环的决定也保持不变。

代码如下:

    self.container.on('mousewheel', function (e, delta) {
        if (!self.running) {
            self.running = true;
            self.animateLoop();
        }
        self.delta = delta
        self.smoothWheel(delta);
        return false;
    });

    self.container.on('mousemove', function (e) {
        var offset = self.image.offset();

        self.mouseLocation.x = (e.pageX - offset.left) / self.currentscale;
        self.mouseLocation.y = (e.pageY - offset.top) / self.currentscale;
    });
 类似资料:
  • 问题内容: 这里是我想要的描述:在tkinter画布中绘制几何对象(在此为矩形)的集合,然后蜜蜂通过鼠标探索该画布。单击并拖动以移动画布,滚动放大和缩小。 使用本主题,我找到了单击和拖动部分:使用Mousewith-mouse 移动tkinter画布 我设法写了一些滚动缩放。移动和缩放都可以很好地分开工作。 问题 :如果移动然后放大,则变焦的焦点不再是光标所在的位置。 有什么建议吗? 这是一段要测

  • 我有一个自定义图表,我使用以下代码缩放它: 我注意到当我用鼠标滚轮滚动图表时,我不能缩放鼠标指向的图表。相反,图表会向左或向右缩放。

  • 我有一个特别的问题。用例是在搜索元素后转到搜索结果。但是,单击搜索按钮后,鼠标指针会无限旋转,直到有人移动鼠标指针。问题是,即使我应用了偏移移动,鼠标指针仍处于旋转位置。整个页面嵌套在一个框架中。移动偏移在以前的方法中是有效的,但不是为了这个,我附加了屏幕截图和代码,在屏幕截图中无法捕获鼠标指针 截图

  • 任务是将物理光标移动到元素。 尝试以下操作: 和以下内容:

  • ================================ 操作系统:Win7 硒:2.33.0 Firefox:22.0 Python:2.7.4 ================================ 我想用“move_to_element”方法将鼠标光标移动到元素“input”上,但不能这样做。 有人有这个问题吗? ==============================

  • 我一直在做曼德尔布洛特集,并试图缩放,但缩放模式变得非常麻烦。当我缩放它完美地缩放,但图像大小减少到原来的一半。下次我再次缩放时,图片大小会增加,并试图跳过查看窗口。代码是c /opengl.在这里发布之前,我试图让我的代码变得干净一点。 执行时