|
как сделать img zoom
делаю зум как тут http://rvolve.com/zoom_pic.php, только там на канве, а у меня нет.Так вот делаю так:
function fixedZoom (x,y) {
var top = getHeight / height;//zoom
var left = getWidth / width; //zoom
var centerX = elem.width()/2;//центр по Х
var centerY = elem.height()/2;//центр по Y
x = x - coord_elem.left;//координаты мыши относительно блока по X
y = y - coord_elem.top;//координаты мыши относительно блока по Y
x = centerX - x;
y = centerY - y;
console.log(x*left)
wrapper.css({
top: style().top + y*top + 'px',
left: style().left + x*left+'px'
})
}
![]() только увелечение не по клику а колесиком но что как то не так работает http://cyberua.16mb.com/files/zoom.html. что делаю нет так? |
cyber,
При зуме нужно фиксировать текущую координату мыши от лево - и верха Окна Самой внешней обертки overlow Поэтому расчитываете координаты и относительно wrapper и обертки overlow, - и wrapper cдвигаете - top и -left на величину разницу - между старыми координатами мыши от угла overlow и приращением ширины и высоты (*или уменьшением - тогда получецо авто плюс) |
раз 3 прочитал и не совсем понял
Цитата:
чет я как то запутался=( |
cyber,
Координаты мыши от лева и тоp (cоррь |
Цитата:
|
Цитата:
|
т.е top , left - Да
|
function fixedZoom (x,y) {
var top = getHeight / height;//zoom
var left = getWidth / width; //zoom
var centerX = elem.width()/2;//центр по Х
var centerY = elem.height()/2;//центр по Y
x = x - coord_elem.left;//координаты мыши относительно блока по X
y = y - coord_elem.top;//координаты мыши относительно блока по Y
x = centerX - x;
y = centerY - y;
console.log(x*left)
wrapper.css({
top: style().top + y*top + 'px',
left: style().left + x*left+'px'
})
}
style().left/top это значение left/top для wrapper y/x координаты курсора я твой алгоритм вроде частично понял (как то запутано написано:)), но не пойму что именно у меня не так |
cyber,
Сплю - завтра к после обеда наверно |
да сам засыпаю,спокойной ночи)))
|
| Часовой пояс GMT +3, время: 19:19. |
|