变焦功能基本完成
Zoom function almost complete
我的同事几乎完成了这个缩放功能,但我不知道如何完成它。这是一个jsFiddle。当您移动右侧的滑块时,红点应该保持在相对于图像的相同位置。一切都很好,除了$('.marker').each(function(){…})中的代码;我已经尝试了许多组合,但似乎不能得到正确的逻辑变焦。谢谢!
JS:
$( "#sliderVertical" ).slider({
orientation: "vertical",
range: "min",
min: 0,
max: 100,
value: 50,
slide: function( event, ui ) {
$( "#sliderValue" ).text( ui.value );
var backImg = $('img');
if (ui.value == 0) {
ui.value = 0.1;
}
var width = ui.value * 12;
var height = width * .75;
$('.marker').each(function(){
var marginLeft = parseFloat($(this).css('margin-left')),
totalWidth = parseFloat(backImg.css('width'));
var newMarginLeft = null;
var marginTop = parseFloat($(this).css('margin-top')),
totalHeight = parseFloat(backImg.css('height'));
var newMrginTop = null;
console.log(totalHeight);
//$(this).css({'margin-left': newMarginLeft + 'px', 'margin-top': newMrginTop + 'px'});
});
var marLeft = 0 - (width / 2);
var marTop = 0 - (height / 2);
backImg.css({'width': width + 'px', 'height': height + 'px', 'margin-left': marLeft + 'px', 'margin-top': marTop + 'px'});
}
});
$('.marker').each(function(){
var marginLeft = parseFloat($(this).css('margin-left')),
totalWidth = parseFloat(backImg.css('width'));
var newMarginLeft = marginLeft*width/totalWidth;
var marginTop = parseFloat($(this).css('margin-top')),
totalHeight = parseFloat(backImg.css('height'));
var newMrginTop = marginTop*height/totalHeight;
console.log(totalHeight);
$(this).css({'margin-left': newMarginLeft + 'px', 'margin-top': newMrginTop + 'px'});
});
演示相关文章:
- 检测移动变焦&默认移动分辨率
- 传单:如何在变焦后,在变焦开始之前获取纬度液化天然气的像素位置
- 当项目变得“卡住”时的功能
- HTML5 画布绘制图像功能在源画布和目标画布相同时变慢
- 对焦功能在这里有什么用?谁能解释下面的代码?我是初学者,所以我需要知道对焦功能的使用
- 当页面上有自动对焦功能时,使用javascript滚动页面
- 禁用电子变焦(捏缩变焦和智能变焦[mac])
- 锤子假变焦不起作用
- Three.js:OrbitControl与变焦阻尼
- 变焦功能基本完成
- 为什么在IE8的低变焦级别下,onresize不能显示呢?
- 光学变焦禁用
- 分数变焦(平滑变焦)在OL3
- 在人像模式下关闭变焦
- 使用GoJS时增加变焦速度
- 水平变焦与D3版本4
- d3.js变焦的单位是什么?将向量
- D3力定向变焦问题
- svg-pan-变焦不是100%正常工作
- 变焦过渡后,“相机”快速恢复到变焦前的位置