Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.04.2010, 19:33
Кандидат Javascript-наук
Отправить личное сообщение для bayah Посмотреть профиль Найти все сообщения от bayah
 
Регистрация: 22.04.2010
Сообщений: 111

Как реализовать zoom?
Господа, собственно хочу сделать зум картинки. В моем случае картинка - это карта, которая не помещается целиком в окне браузера, а в уменьшенном варианте слишком мелка для того чтобы разглядеть нужные детали глазом. Можно конечно было положить картинку в div и задать overflow = scroll. Но ползать по карте полосами прокрутки как-то не красиво. Поэтому я ставлю overflow = hide. И пишу две кнопки - "зум +" и "зум -"

<script type='text/javascript'>
function zoom_in(){
var map = document.getElementById('map')
//для примера просто увеличиваю размеры непропорционально
map.width += 100
map.height +=100

}
function zoom_out(){
var map = document.getElementById('map')
map.width -= 100
map.height -=100
}
</script>
</head>

<body>
<div align="center" id="view_window" style="position:absolute; left:174px; top:54px; width:700px; height:700px; z-index:2; overflow: hidden;">
<img id='map' src="images/small_Boss.JPG" width="146" height="133">
</div>
<input type='button' value='Zoom In' onclick='zoom_in()'/>
<input type='button' value='Zoom Out' onclick='zoom_out()'/>
</body>
</html>

При увеличении, когда картинка становится больше размера div'a, ее края
уходят только за нижнюю и правую границу div'а. А как сделать чтобы картинка увеличивалась равномерно относительно центра и выходила за рамки верхней и левой границы? Хотя при таком зуме я не смогу никогда увидеть те участки которые оказались вне окна div'a...

Тогда единственное, что мне приходит в голову, это создать div на котором отлавливать положение курсора мыши и пропорционально установленному зуму отображать в окно созданное при помощи clip: rect() собственно картинку. Но тогда мне нужно будет перемещать картинку по div'у чтобы в clip область попадал нужный кусок. Что я опять же не знаю как сделать.
Подскажите кто поопытней, наверняка вы уже делали зум?
Может мой подход неверен?

Последний раз редактировалось bayah, 25.04.2010 в 19:36.
Ответить с цитированием
  #2 (permalink)  
Старый 26.04.2010, 04:15
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ты можешь сделать что-то типа
<div style="overflow: hidden;
            width: 100px;
            height: 100px;
            position: relative;">
    <img src="opacity.png" style="position: absolute;">
</div>

и двигать эту картинку с помощью ...style.left, ...style.top. А в увеличенном состоянии я бы добавил возможность перемещать картинку с помощью мышки (только курсор мышки бы поменял, чтобы это было понятно)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма и 3 кнопки, Как реализовать переход? jsuse Элементы интерфейса 1 10.04.2010 21:52
Как реализовать вывод такого окна nastya Events/DOM/Window 4 04.02.2010 05:41
как реализовать задачу? (автокомплит и много инпутов из под дома) h-zone jQuery 1 06.11.2009 20:09
Как реализовать? Fliand Элементы интерфейса 4 22.08.2009 19:47
Динамически увеличивающиеся изображения: как реализовать? cforest Events/DOM/Window 6 24.06.2009 17:16