2016-09-28 4 views
0

Как я могу добавить свои карты Google в элемент svg? Я хочу заполнить svg картой.Встраиваемые карты Google iframe в элементе SVG

карты появляется, но растягивается и из формы SVG

Для TESTE коды необходимо вставить ссылку исходников фрейма.

Мой код:

svg 
 
{ 
 
    stroke: red; 
 
}
<svg viewBox="0 0 100 100" preserveAspectRatio="none"> 
 
    <foreignObject id="map" width="560" height="349"> 
 
    <iframe width="560" height="349" frameborder="0" style="border:0" src="LINK + API_KEY" allowfullscreen></iframe> 
 
    </foreignObject> 
 
    <path fill="url(#map)" d="M 50 15, 100 25, 100 100, 50 100, 0 100, 0 25Z" /> 
 
</svg>

Спасибо-х

+0

Добро пожаловать на ТАК! При предоставлении кода примера, пожалуйста, сделайте [минимальным, полным, проверяемым примером] (http://www.stackoverflow.com/help/mcve) (так, дайте нам рабочий пример iframe). Я правильно понимаю, что ваш минимальный вопрос - использовать svg для маскировки iframe, верно? – henry

+0

Да, это он! Я не показываю действительный iframe, потому что ключ api на картах google. – user3242861

+0

Прохладный. Если это вопрос, то карты google действительно не имеют значения, и любой рабочий iframe будет в порядке – henry

ответ

1

Вот решение, основанное на Yoksel-х "Masking video with SVG Clippath". Видеозапиление-заглушка предназначено только для того, чтобы обеспечить рабочий открытый iframe. Чтобы использовать это решение, вам нужно будет переопределить <path>, чтобы иметь нужный размер (если вам повезет, вы просто сможете использовать проценты, такие как Yoksel).

(@yoksel ты тот же Yoksel?)

.svg { 
 
    width: 560px; 
 
    height: 349px; 
 
}
<svg class="svg"> 
 
    <clippath id="my-clippath"> 
 
    <path d="M 50 15, 100 25, 100 100, 50 100, 0 100, 0 25Z"></path> 
 
    </clippath> 
 

 
    <g clip-path="url(#my-clippath)"> 
 
    <foreignObject width="560" x="0" y="0" height="349"> 
 
     <iframe width="560" height="349" src="https://www.youtube.com/embed/NpEaa2P7qZI" frameborder="0" allowfullscreen></iframe> 
 
    </foreignObject> 
 
    </g> 
 
</svg>

+0

Спасибо @henry. Это все, но как я могу положить, например, клип с шириной: 100% и высота: 100%? И подгонка контента. Я использую много форм svg, и у меня возникают проблемы с отзывчивым, когда у меня есть svg, заполненный изображениями или в этом случае с iframes. – user3242861

+0

Если вы все еще работаете над этим: похоже, что некоторые хорошие ресурсы: https://www.smashingmagazine.com/2015/05/creating-responsive-shapes-with-clip-path/, http://bennettfeely.com/clippy /, и http://codepen.io/maddesigns/full/jJqep – henry

Смежные вопросы