다양한 질문에 의해 질문을 받았지만 여러 가지 대답으로 제공된 방법으로 해결하지 못했습니다.jQuery 모달의 전단지 크기 조절
내 문제는 레일 애플리케이션을 통해 생성 된 리플릿 맵을 포함하는 jQuery 모달에서 타일이 올바르게 렌더링되지 않는다는 것입니다.
이전 질문 (예 : Leaflet map not showing properly in bootstrap 3.0 modal)은 invalidateSize()를 사용하도록 제안했습니다. 모달이 표시된 후 jQuery 함수를 통해 메소드를 호출하십시오.
내 응용 프로그램은 jQuery Modal 라이브러리를 사용한다는 점에서 다른 점이 다릅니다.
나는 현재 여전히 내 타일 사업부 내에서 제대로 렌더링되지 않습니다이
<% @clinics.each_with_index do |clinic, index| %>
<div class="link-to-map">
<a href="#ex1" rel="modal:open" id="to-modal">
<span class="glyphicon glyphicon-arrow-right"></span>
</a>
</div>
<div id="ex1" class="map-modal" style="display:none;">
<div class="row">
<div class="col-sm-7">
<div id="mapid-<%= index %>" class="mapas-modal">
</div>
</div>
</div>
<% end %>
</div>
<script>
var mymap = L.map('mapid-<%= index %>').setView([19.419444, -99.145556], 13);
L.tileLayer('https://api.mapbox.com/styles/v1/eclarkgd/ciwfc2mce004b2plkmujdb3no/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiZWNsYXJrZ2QiLCJhIjoiY2lraXVvaWlzMDUzN3RubTZ2OHBscWRxciJ9.ikI5wjFM2RNcoOrssqx2Zg', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18,
}).addTo(mymap);
var marker = L.marker([19.419444, -99.145556]).addTo(mymap);
marker.bindPopup("<%= clinic.institucion %>").openPopup();
</script>
<script>
$('#to-modal').click(function() {
setTimeout(function() {
mymap.invalidateSize();
alert("corre corre");
}, 1000);
});
</script>
처럼 뭔가 노력하고있어. 나는 이전에 전통적인 부트 스트랩 모달을 사용하는 응용 프로그램에서이 방법을 사용했으며
모든 아이디어를 높이 평가할 것입니다.
** 모달 개방 링크
안녕하세요, 감사는 코멘트, 여전히 corrently 렌더링되지 않고 크기가 무효화되지 않은 것처럼 여전히 보인다. 모달 개방 링크를 추가했습니다. 도와 주셔서 감사합니다! – eclark
사실 이제는 확인했지만 솔루션은 부분적으로 작동하지만 부분적으로는 작동합니다. 레일 응용 프로그램은 각각 내부에지도가있는 8 개의 모달을 생성합니다. 어떤 이유로 mapinvalidate면은 마지막 점에서만 작동합니다. – eclark
새 코드를 보지 않고 무엇이 잘못 될지 알기가 어렵습니다. 폐쇄 또는 참조 문제 일 수 있습니다. – ghybs