Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Повернуть круг относительно своей оси (https://javascript.ru/forum/xhtml-html-css/81839-povernut-krug-otnositelno-svoejj-osi.html)

fori 04.02.2021 15:24

Повернуть круг относительно своей оси
 
Етот код вращает круг оносительно своей оси, чтоб задать ось вращения можно использовать transform-origin
<svg width="220" height="220" padding="0">
<circle class="myCircle"/>
</svg>
  <style>
  .myCircle {
  margin:0;
  cx:110;
cy:110;
r:100;
transform-origin: center;
transform: rotate(-60deg);
  fill: none;
  stroke: #333;
  stroke-width: 20;
  stroke-dasharray: calc(2*3.14*100);
  transition: stroke-dashoffset 1s;
}
svg:hover{
stroke-dashoffset: calc(2*3.14*100);
}
  </style>

рони 04.02.2021 15:37

Цитата:

Сообщение от fori
своей оси

своя это которая?

рони 04.02.2021 15:38

fori,
может вы хотели это
https://www.w3schools.com/howto/howto_css_flip_card.asp

рони 04.02.2021 15:45

fori,
или так ...
<svg width="200px" height="200px">
<circle class="myCircle"/>
</svg>
    <style>
    .myCircle {
        cx: 95;
        cy: 95;
        r: 85;
        transform-origin: 95px;
        transform: rotate(60deg);
        fill: none;
        stroke: #333;
        stroke-width: 20;
        stroke-dasharray: 534;
        transition: stroke-dashoffset 1s;
    }
    svg:hover {
        stroke-dashoffset: 534;
    }
    </style>

fori 04.02.2021 16:07

Спасибо, то что нужно))
Позвольте спросить как изменять stroke-dasharray напримеор в hover
К примеру етот код переносит черную полоску вверх, как сделать так чтоб ета полоска уменьшалась при перетягивании вверх по 2д-окружности относительно центра
<svg width="220" height="220" padding="0">
<circle class="myCircle"/>
</svg>
  <style>
  .myCircle {
  margin:0;
  cx:110;
cy:110;
r:100;
transform-origin: center;
transform: rotate(-60deg);
  fill: none;
  stroke: #333;
  stroke-width: 20;
  stroke-dasharray: calc(2*3.14*100/3) calc(2*3.14*100*2 /3);
  transition: stroke-dashoffset 1s;
}
svg:hover{
stroke-dashoffset: calc(2*3.14*100/3);
stroke-dasharray: 0 calc(2*3.14*100); //не работает
}
  </style>

рони 04.02.2021 16:32

fori,
svg:hover .myCircle
<svg width="220" height="220" padding="0">
<circle class="myCircle"/>
</svg>
    <style>
    .myCircle {
    margin:0;
    cx:110;
cy:110;
r:100;
transform-origin: center;
transform: rotate(-60deg);
    fill: none;
    stroke: #333;
    stroke-width: 20;
    stroke-dasharray: calc(2*3.14*100/3) calc(2*3.14*100*2 /3);
    transition: 1s;
}
svg:hover .myCircle{
stroke-dashoffset: calc(2*3.14*100/3);
stroke-dasharray: 0 calc(2*3.14*100);
}
    </style>

fori 04.02.2021 22:27

Спасибо, позвольте спросить, насколько правильный подход у создании такой анимации у мненя, или можно было выбрать лучшый подход
<svg width="220" height="220" padding="0">
	<circle class="myCircle" />
</svg>
<style>
	.myCircle {
		margin: 0;
		cx: 110;
		cy: 110;
		r: 100;
		transform-origin: center;
		stroke-dashoffset: calc(2*3.14*100/3);
		stroke-dasharray: 0 calc(2*3.14*100);
		transform: rotate(180deg);
		fill: none;
		stroke: #333;
		stroke-width: 20;
		transition: 1s;
	}
	svg:hover .myCircle {
		transform: rotate(60deg);
		stroke-dasharray: calc(2*3.14*100/3) calc(2*3.14*100*2 /3);
	}
</style>

рони 04.02.2021 23:16

fori,
в тег форматирования добавьте html run height=500


Часовой пояс GMT +3, время: 02:34.