我試圖做一些「縮放」-funktion(加載更大的圖像)在jQuery中,同時能夠拖動圖像(.draggable)中一個更小的div。但是我遇到了一個小問題。問題與.draggable()和更改不同大小的圖像
當我達到最大縮放比例(可以說第三個圖像,高度約爲300px +寬度比第一個寬度高1600px),然後將自己置於右下角,然後開始縮小:我是然後卡在那個角落,而我看到圖像本身變小,給我一個白色的空白空間,圖像是在那之後不可裁剪(可以這麼說)。
但是,如果我然後向我替換的圖像添加.css({'left':'0px','top':'0px'}),我會飛回到左上角,並且可以拖動所有我想要。但顯然我想留在我想要放大的地方。
如果我更改(代碼中較低的代碼)「containment:[data]」爲「containment:」parent「我可以」停留「在放大和縮小的某個區域中,但當我進入一個角落時(但我可以再次拖動圖片),我仍然會得到白色的空白區域,並且它的成本不再是平滑的全景感 - 更像是它捕捉到邊緣。這是一個很好的解決方案,或者是有更好的方法來實現這樣的東西。我已經嘗試使用.animate()方法來解決這個問題,並使一張照片變大,但最終我得到同樣的問題。
<div id="map"> // 900px in width and 300px in height and Overflow: hidden in css to keep larger images inside
<img id="map-image" src="images/hogf_zoom0.jpg" /> // same as #map until zoom1.jpg wich is slightly larger
</div>
<div id="zoomPanel">
<a href="#" class="zoomIn">+</a>
<a href="#" class="zoomOut">-</a>
</div>
-
var zoom = 0;
var maxZoom = 3;
$('.zoomIn').click(function() {
if (zoom >= 0 && zoom < maxZoom) {
zoom++;
$("#map-image").attr("src", "images/hogf_zoom" + zoom + ".jpg").css({'top': '-0px','left': '0px'});
if (zoom > 0) { $("#zoomPanel .zoomOut").show(); }
}
});
$('.zoomOut').click(function() {
if (zoom <= maxZoom && zoom > 0) {
zoom--;
$("#map-image").attr("src", "images/hogf_zoom" + zoom + ".jpg").css({'top': '-0px','left': '0px'});
if (zoom == 0) { $("#zoomPanel .zoomOut").hide(); }
}
});
$('#map img').load(function() {
var mapWidth = $("#map").width();
var mapHeight = $("#map").height();
var imgPos = $("#map-image").offset();
var mapPos = $("#map").offset();
var imgWidth = $("#map-image").width();
var imgHeight = $("#map-image").height();
var x1 = ((1 + mapWidth) - imgWidth) + mapPos.left;
var y1 = (11 + mapHeight) - imgHeight;
var x2 = imgPos.left;
var y2 = imgPos.top;
$("#map img").draggable({
containment: [x1,y1,x2,y2],
cursor: 'move'
});
});
感謝您的任何類型的輸入。
依照訂購,演示: http://miyao.eu/zoomzoom/
在http://jsfiddle.net上發佈演示會幫助我們幫助你。我嘗試過但沒有圖像,這讓它變得更加困難。 – Mottie 2011-04-05 13:51:20
現在應該在帖子底部添加一個演示,fudgey。我已經添加了這兩種類型的縮放與頂部/底部= 0和沒有。在沒有使用的情況下使用完全縮放並轉到右下角,然後縮小以查看其中一個問題。 – Miyao 2011-04-05 14:07:40
我還沒有找到解決辦法,所以如果任何人有任何想法,我會很樂意傾聽。 – Miyao 2011-04-06 06:31:24