I am working on a zoom image functionality that creates a new div
with a large image that is moved through x and y according to the mousemove on the image.
The large image should move a certain %, which is what i am trying to figure out. How much should it move by.
I want to calculate how much smaller (or vice-versa ) the small image is from the the large.
This is in middle of a whole big script. I started writing the formula for the calculation: Again, All i want is to get the difference in percent converted into pixels step by step. First get the % then convert that into pixels.
zoomObj.caluculateSizes = function(){
$(zoomObj.largeImage).load(function(){
// zoomObj.callingEvent is the small image
zoomObj.smlImgSize = zoomObj.callingEvent.width()
zoomObj.lrgImgSize = zoomObj.largeImage.width()
// How do i go from here?
})
js goes on.......
This is just bit of simple math...
w - width of the small image
W - width of the big image
l - left position of the small image
L - left position of the big image
L = l + 1/2w - 1/2W
h - height of the small image
H - height of the big image
t - top position of the small image
T - top position of the big image
T = t + 1/2h - 1/2H
So assuming our image is:
<img style="width:221px; height:221px; position:absolute; left:600px; top:700px;" />
Answer:
Left = 600 + 1/2*221 - 1/2*1000 = 210 (rounded)
Top = 700 + 1/2*221 - 1/2*1000 = 310 (rounded)
<img style="width:1000px; height:1000px; position:absolute; left:210px; top:310px;" />
Using this calculation you can determine where you need to place big image/div to be centred in relation to the other object.
Edit: To put it all together, assuming bigImage is a CHILD of viewport, you need to use 0 as t and 0 as l.
Left = 0 + 1/2*221 - 1/2*1000 = -390 (rounded)
Top = 0 + 1/2*221 - 1/2*1000 = -390 (rounded)
<div id="viewport" style="width:221px; height:221px;overflow:hidden;position:relative;">
<img id="bigImage" style="width:1000px; height:1000px; position:absolute; left:-390px; top:-390px;" />
</div>
- as you see I used negative values, so bigImage will hide behind the viewport, and because.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With