使用 jQuery 滑块缩放图像的位置不正确
Scale image using jQuery Slider not positioning correctly
我创建了一个滑块来操作DOM中的图像。我想发生的是图像缩放,但在缩放时保持居中。我遇到的问题是我让用户能够使用 .draggable 定位图像,但在他们移动图像并尝试再次缩放图像后,它会跳跃位置。我在问题中添加了一个小提琴来表明我的意思。
基本上,如果您在拖动图像之前使用滑块更改图像的大小,则图像将正确缩放和定位,但是,如果您在首次缩放后移动图像,然后在拖动图像后再次尝试缩放滑块的第一次迭代,然后正确缩放和定位。
奇怪的是,如果您缩放图像拖动,它会再次将其缩小到原始大小拖动,然后尝试正确缩放它的位置。看起来它与之前的滑块值有关。
滑块和拖动的代码:
$( "#slide1" ).slider({
range: "min",
min: -70,
max: 150,
step: 10,
value: 0,
slide: function( event, ui ) {
var zv = (1+ ui.value/100); // Rotate Value
var nx = 0;
var ny = 0;
nzo = calculateAspectRatioFit(iwz, ihz, iwz*(zv), ihz*(zv));
$('#img1').width(nzo.width).height(nzo.height);
var wd = Math.abs(iwz - nzo.width);
var hd = Math.abs(ihz - nzo.height);
if (zv < 1){
nx = (ixz+(wd/2));
ny = (iyz+(hd/2));
$('#img1').css({'left':nx+'px','top':ny+'px'});
} else {
nx = (ixz-(wd/2));
ny = (iyz-(hd/2));
$('#img1').css({'left':nx+'px','top':ny+'px'});
}
}
});
$('#img1').draggable({
drag:function(event, ui){
var il = ui.position.left;
var it = ui.position.top;
var iw = $(this).width();
var ih = $(this).height();
$('#img1').css({'top':it+'px','left':il+'px'});
},
stop:function(){
ixz = $('#img1').position().left;
iyz = $('#img1').position().top;
}
});
});
所有代码都位于此处的 JSFiddle 中。
在计算NX和NY时,不会添加或删除WD/HD。这将解决您的问题
if (zv < 1){
nx = (ixz);
ny = (iyz);
$('#img1').css({'left':nx+'px','top':ny+'px'});
} else {
nx = (ixz);
ny = (iyz);
$('#img1').css({'left':nx+'px','top':ny+'px'});
}
终于找到了如何做到这一点。我所要做的就是检查它是否已被拖动,如果它在缩放的第一次迭代中被拖动,我需要在操作图像之前从 x 和 y 位置取走初始缩放值宽度和高度差。很难解释,但这是一个工作的小提琴
if (dragged && zc == 0){
var wt = Math.abs(iwz - nzo.width);
var ht = Math.abs(ihz - nzo.height);
if (czv < 1){
ixz = ixz-(wt/2);
iyz = iyz-(ht/2);
} else {
ixz = ixz+(wt/2);
iyz = iyz+(ht/2);
}
}
相关文章:
- DIV并排,位置不正确
- 将CSS应用于在JavaScript中创建的表-表的位置不正确
- 谷歌地图标记IE中的位置不正确,在chrome上工作正常
- 按钮在 Chrome 中的位置不正确
- 动画过程中位置不正确
- 从 SVG 加载的结构 JS 形状的位置不正确
- 使用 jQuery 滑块缩放图像的位置不正确
- 为什么这些列表项的位置不正确
- Phonegap:在目录中导航,索引位置不正确
- Jquery日期选择器图标位置不正确
- 使用jQuery Mobile构建的iOS应用程序的页脚位置不正确
- 使用VS Code、TypeScript和Node.js的断点位置不正确
- 道场堆叠条形/柱形图表标签位置不正确
- 打印时绝对定位元素的位置不正确
- Html5画布绘制位置不正确
- 刷新页面后图像位置不正确
- 和中逗号的位置不正确
- 气球在地图上的位置不正确
- ng重复会导致锚点位置不正确
- jQueryUI可排序项目在拖动时位置不正确