पर एक छवि स्केल करें ऐसा लगता है कि यह काफी सरल होना चाहिए, लेकिन किसी कारण से मैं अपने दिमाग को इसके चारों ओर लपेट नहीं सकता। मेरे पास "व्यूपोर्ट" div के अंदर एक छवि है, जिसमें से अतिप्रवाह संपत्ति छिपी हुई है।जावास्क्रिप्ट (jQuery) अपने कंटेनर सेंटर प्वाइंट
मैंने jQuery UI के साथ एक साधारण ज़ूमिंग और पैनिंग लागू की है, हालांकि मुझे व्यूपोर्ट के केंद्र से उत्पन्न होने के लिए ज़ूम मिलने में परेशानी हो रही है। मैंने फ़ोटोशॉप से थोड़ा सा स्क्रीनकास्ट किया जिस प्रभाव को मैं पुन: उत्पन्न करने की कोशिश कर रहा हूं: http://dl.dropbox.com/u/107346/share/reference-point-zoom.mov
पीएस में आप उस बिंदु से स्केलिंग संदर्भ बिंदु को समायोजित कर सकते हैं। जाहिर है एचटीएमएल/सीएसएस/जेएस के साथ यह संभव नहीं है, इसलिए मैं प्रभाव की नकल करने के लिए उचित बाएं और शीर्ष सीएसएस मानों को खोजने की कोशिश कर रहा हूं।
यहाँ से हटाया प्रश्न में कोड, कुछ अनावश्यक बिट्स के साथ है:
एचटीएमएल
<div id="viewport">
<img id="map" src="http://dl.dropbox.com/u/107346/share/fake-map.png" alt="" />
</div>
<div id="zoom-control"></div>
जावास्क्रिप्ट
$('#zoom-control').slider({
min: 300,
max: 1020,
value: 300,
step: 24,
slide: function(event, ui) {
var old_width = $('#map').width();
var new_width = ui.value;
var width_change = new_width - old_width;
$('#map').css({
width: new_width,
// this is where I'm stuck...
// dividing by 2 makes the map zoom
// from the center, but if I've panned
// the map to a different location I'd
// like that reference point to change.
// So instead of zooming relative to
// the map image center point, it would
// appear to zoom relative to the center
// of the viewport.
left: "-=" + (width_change/2),
top: "-=" + (width_change/2)
});
}
});
यहाँ पर परियोजना है JSFiddle: http://jsfiddle.net/christiannaths/W4seR/
शानदार! धन्यवाद :) – Christian