缩放和缩放图像
Scale and zoom an image
我看到了这个问题,发现它很有帮助,但我试着用代码做更多的事情来应用缩放按钮,似乎不能让它正常工作。我是javascript和jquery的新手,我很难理解"this"关键字是如何应用的。
$('#plus').click(
function( event ){
var scale = 150/100;
var pos = $('#Container img').offset();
var clickX = event.pageX - pos.left;
var clickY = event.pageY - pos.top;
var container = $('#Container img').parent().get(0);
$('#Container img').css({
width: this.width*scale,
height: this.height*scale
});
container.scrollLeft = ($(container).width() / -2 ) + clickX * scale;
container.scrollTop = ($(container).height() / -2 ) + clickY * scale;
}
);
$('#minus').click(
function( event ){
var scale = 100/150;
var pos = $('#Container img').offset();
var clickX = event.pageX - pos.left;
var clickY = event.pageY - pos.top;
var container = $('#Container img').parent().get(0);
$('#Container img').css({
width: this.width*scale,
height: this.height*scale
});
container.scrollLeft = ($(container).width() / -2 ) + clickX * scale;
container.scrollTop = ($(container).height() / -2 ) + clickY * scale;
}
);
我做了一个jsfiddle来演示我的代码
this
指的是被点击的元素(实际上,您应该在jQuery中使用$(this)
),因为在点击之后调用的函数得到了那个作用域。所以在你的例子中,this
是指加号或减号按钮,因此你在技术上缩放他们的宽度/高度,并将结果宽度/高度应用于图像。
this
所代表的内容,一个常见的方法是将其赋值给函数最顶部的一个变量,例如:
var self = this;
或
var $myClickedButton = this;
还要注意样式:
-
element.width
指的是元素的宽度属性(像<img width="300" />
,类似于jQuery的$(element).attr('width')
),但是 -
element.style.width
指的是它的CSS宽度(如<img style="width: 300px;" />
,或<img class="myClassWithDenotedWidth" />
,类似于jQuery的$(element).css('width')
)。后者也有一个单位,所以你必须对它进行解析才能得到数值。
我已经为你的加号按钮修复了它,你可以按照同样的原则为减号按钮。我是这样做的:
var $image = $('#Container img');
var container = $image.parent().get(0);
$('#Container img').css({
width: Math.round(parseInt($image.css('width'), 10) * scale),
height: Math.round(parseInt($image.css('height'), 10) * scale)
});
看这里:http://jsfiddle.net/shomz/4A9Gt/4/(也添加了一个CSS过渡,使缩放不那么起伏)
相关文章:
- 自动缩放图像以匹配文本高度
- 使用-webkit transform:scale()缩放图像
- 缩放图像灯箱
- 保持可缩放图像的纵横比
- 使用 HTML 输出标记查看可缩放图像并分配 src
- 使用弹性框和缩放图像并保持在同一行上
- 查找图像上两点之间的距离,即使缩放图像也是如此
- 当只给定宽度或高度时,是否所有浏览器都按比例缩放图像
- 获取缩放图像的尺寸
- 从输入[类型=文件]缩放图像
- 如何防止 javascript drawImage() 缩放图像
- HTML 画布:缩放图像以适合而不拉伸
- 缩放图像,而不是在调整浏览器窗口大小时环绕图像
- 从中心缩放图像(fabricjs)
- 使用 CSS 在 HTML 中缩放图像
- jQuery SpriteSpin 缩放图像
- 如何更改数据缩放图像值
- 使用 jquery 悬停时缩放图像
- 使用鼠标向下拖动以缩放图像缩略图
- 我如何创建鼠标滚轮可缩放图像