Всем привет!
Работаю над созданием скрипта, который позволяет делать две вещи:
* приближение и отдаление картинки внутри жесткой рамки;
* перемещение оной там же, мышью;
Изначально перед нами на странице картинка по ширине рамки. Вот скрин:
Картинка увеличивается внутри рамки, т.к. у последней задан
overflow: hidden.
Мне удалось сделать эффект приближения и отдаления, но
drag'n'drop не получается. Почему-то картинка изменяется в размере и выходит за пределы рамки.
Приведу коды HTML, CSS и javascript
:
<div id="border1" class="main-border">
<img id="map" alt="" src="img/13_zagros.jpg">
</div>
Код:
|
.main-border {
margin: auto;
overflow: hidden;
width: 500px;
height: 300px;
margin-top: 2%;
border: 3px solid #663333; |
//КОД ПРИБЛИЖЕНИЯ И ОТДАЛЕНИЯ, РАБОТАЕТ БОЛЕЕ-МЕНЕЕ НОРМАЛЬНО:
var block = document.getElementById('map');
var x = 100;
block.onwheel = function(event) {
if(event.deltaY < 0 && this.style.width < "500%"){
x += 5;
this.style.width = x + '%';
}
if(event.deltaY > 0 && this.style.width > "100%"){
x -= 5;
this.style.width = x + '%';
}
return false;
}
//КОД ПЕРЕМЕЩЕНИЯ, ТУТ ПОЛНАЯ ШЛЯПА...
var blockmove = document.getElementById('map');
blockmove.onmousedown = function(e) {
blockmove.style.position = 'absolute';
moveAt(e);
document.body.appendChild(blockmove);
blockmove.style.zIndex = 1000;
function moveAt(e) {
blockmove.style.left = e.pageX - blockmove.offsetWidth / 2 + 'px';
blockmove.style.top = e.pageY - blockmove.offsetHeight / 2 + 'px';
}
document.onmousemove = function(e) {
moveAt(e);
}
blockmove.onmouseup = function() {
document.onmousemove = null;
blockmove.onmouseup = null;
}
}
Я не силен в Javascript, но очень хотелось бы разобраться. Буду благодарен за любую помощь!