تغيير حجم شارع الشارع
-
24-09-2019 - |
سؤال
مرحبا Stackoverflow'ers ،
لديّ تطبيق (Flex) ، بنقرة زر واحدة ، تغيير حجم Div (في JavaScript) في أسفل الصفحة ويظهر موقعك في عرض Google Street فيه.
الأشياء هي أنه إذا فتحت المتصفح بنسبة 80 ٪ من العرض ، فانقر فوق الزر ثم زيادة النافذة إلى الحد الأقصى ، فلن يستغرق DIV 100 ٪ من العرض. لديّ وظيفة تسمى "onresize" على علامة جسم الصفحة ، لكن لا يبدو أنها تعمل. هنا هو الرمز:
...
function handleResize()
{
document.getElementById('streetviewDiv').style.width='100%';
}
...
<body onResize="handleResize()">
كيف يمكنني تحقيق التوقيت التلقائي لمشاهدة الشارع؟ يجب أن يكون هناك معرف محدد لهذا الكائن حتى نتمكن من الحصول عليه بواسطة JavaScript ، لكنني لم أجده.
شكرًا
المحلول
سيتعين عليك إظهار بعض العلامات و CSS. يمكن أن يكون هناك أي عدد من الأسباب التي تجعلك لا تحصل على تغيير الحجم. سلوك DIV العادي ، في غياب أي إعداد عرض ، للتوسع أفقيًا لملء الحاوية الأصل. لذلك إما أن يكون Div الخاص بك مقيدًا من قبل عنصر أولياء أو أي شيء آخر يحدث.
قد يحدث أيضًا أن يتم توسيع DIV ، لكن محتوياته المرئية ليست كذلك ، إذا كان كائن StreetView الخاص بك هو ما تتوقع التوسع فيه ولكنه لا.
نصائح أخرى
ما يلي يعمل بالنسبة لي. تحتاج إلى تضمين jquery-ui.
$("#streetViewDivId").resizable({handles: 'n,w,s,e', minWidth: 200, maxWidth: 600});
$("#streetViewDivId").on( "resizestop", function( event, ui ) {
google.maps.event.trigger(panorama, 'resize');
console.log('streetview resize ended');
});
أعتقد أنه JavaScript النقي كما هو من V3 من واجهة برمجة التطبيقات.
هذا ساعدني:https://developers.google.com/maps/documentation/javaScript/Reference#streetViewPanorama
لا ينبغي على أي من المطورين أن يحفز هذا الحدث على البانوراما عندما يتغير DIV حجمه: google.maps.event.trigger (Panorama ، "تغيير الحجم").