LINUX.ORG.RU

SVG нюансы для ньюфажины

 , , ,


0

1

Кароч, делаю интерактивную карту, бгшка и сверху svg-элементы, в частности - окружности и пунктирные линии, типа маршруты и поинты. По мере прокручивания выезжают с двух сторон картинка+текст в двух контейнерах, и в ЭТОТ момент прорисовываем маршрут и поинт соответствующий паре (картинка+текст),

<body>
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
<!--Тут первый поинт-->
   <circle cx="200" cy="150" r="18" 
      fill="white" 
      stroke-width="5" 
      stroke="green" 
      stroke-opacity="0.7">
   </circle> 
   <circle cx="200" cy="150" r="11.0764" 
      stroke="white" 
      stroke-width="5" 
      fill="green" 
      fill-opacity="0.7">
      <animate attributeType="XML" 
         attributeName="r" 
         from="13" to="10" dur="2s" 
         repeatCount="indefinite">                    
      </animate>
   </circle>

<!--Тут  пунктирная линия между поинтами-->
   <path d="M 219 150 h 257" 
      stroke="green" 
      stroke-opacity="0.7" 
      stroke-width="14" 
      stroke-dasharray="7 5">
   </path>

<!--Тут второй поинт-->
   <circle cx="495" cy="150" r="18" 
      fill="white" 
      stroke-width="5" 
      stroke="green" 
      stroke-opacity="0.7">
   </circle>

   <circle cx="495" cy="150" r="11.0764" 
      stroke="white" 
      stroke-width="5" 
      fill="green" 
      fill-opacity="0.7">
         <animate attributeType="XML" attributeName="r"                  
            from="13" to="10" dur="2s"
            repeatCount="indefinite"></animate>
    </circle>
</svg>       
    
</body>

Вот типа как я ковыряю эту тему и прицеливаюсь, и сразу же подводные камни: 1) Есть настройки анимации окружности, там де она типа расширяется, но кошерно будет сделать что бы она расширялась, а затем сужалась и закольцевать, а то дёргается, беспонтово 2) Как заанимировать линию, чёт не нагуглил годной темы, и с ней ещё момент - как подогнать край под окружность, можно ли сделать вырезы (полукругом) на концах, что бы она чётко стыковалась с окружностью - ведь если я использую опасити, а я использую - края крайне херово просматриваются. В общем, буду рад вашим комментариям и наставлениям, вот, это всё



Последнее исправление: ghett (всего исправлений: 2)

1) Вместо from/to сделай

    values="13; 10; 13;"
    keyTimes="0; 0.5; 1;"

А вообще — вот, в сравнении с CSS.

2) Просто, также анимируешь 'd' и всё. В статье где-то на середине пример с кружочками/квадратиками/треугольничками.

3) Про края — не понял чё ты хочешь. Всё у тебя нормально стыкуется. Вырезы сделать можно, clip path, например. Ещё масками можно, но сложнее.

anonymous
()
Ответ на: комментарий от anonymous

забожил, кланяюсь! Слушайте! Жопа то совсем, бгшкe(map) обмазываю параллаксом, а СВГ то как? Ну кароче события, все дела, но как мне привязать svg к бэкграунду или вообще как то по другому

ghett
() автор топика
Ответ на: комментарий от anonymous

не пашет твоё «вместо from/to» просто не пашет.

ghett
() автор топика
Ответ на: комментарий от anonymous

вот код параллакса:

<!--Displaing containers_vs_text_on_BG-->
       <div class="cover" id="recorddiv2645061" bgimgfield="img" style="height:1500px; background-image:-webkit-linear-gradient(top, #ccc, #777); background-image:-moz-linear-gradient(top, #ccc, #777); background-image:-o-linear-gradient(top, #ccc, #777); background-image:-ms-linear-gradient(top, #ccc, #777); background-image:linear-gradient(top, #ccc, #777); ">
           <!--BG--> 
           <div class="cover_carrier" id="coverCarry2645061" data-content-cover-id="2645061" data-content-cover-bg="map.svg" data-content-cover-height="1500px" data-content-cover-parallax="fixed" style="background-image:url(&#39;map.png&#39;);height:2500px;"></div>
           <!--/BG-->
           
           <!--OPACITY-->    
           <div class="filteropacity" style="height:100vh;background-image: -moz-linear-gradient(top, rgba(0,0,0,0.25), rgba(0,0,0,0.25));background-image: -webkit-linear-gradient(top, rgba(0,0,0,0.25), rgba(0,0,0,0.25));background-image: -o-linear-gradient(top, rgba(0,0,0,0.25), rgba(0,0,0,0.25));background-image: -ms-linear-gradient(top, rgba(0,0,0,0.25), rgba(0,0,0,0.25));background-image: linear-gradient(top, rgba(0,0,0,0.25), rgba(0,0,0,0.25));">
               
        <!--/OPACITY-->        
           </div>

Это чёртов параллакс.

height:2500px;«></div>

данный параметр позволяет мне сделать бгшку статичной, юзер скролит пэйдж но бгха остаётся перед ним всё время, только лишь контейнеры сверху меняются! Но мне нужно привязать к этой бгхе контейнер с анимацией SVG или я хз как, что бы он оставалась неподвижной вместе с бгшкой, и прорисовывалась когда нужно будет, что бы нихрена не лагало, скажите каааак!?

ghett
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.