亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對從一個角到另一個角的對角線進行動畫處理

對從一個角到另一個角的對角線進行動畫處理

BIG陽 2023-12-04 17:06:46
我正在嘗試對頁面上從一個角到另一個角的對角線進行動畫處理。無論屏幕格式如何,該線都應該是對角線。我認為(或者我認為)我必須transform: rotate()在 CSS 中使用。使用 jquery 或 Javascript,我嘗試返回并計算給定屏幕格式的線條必須旋轉的角度。該論點應該傳遞給rotate().我已經用 jQuery 和 Javascript 嘗試過以下操作:<script>  $('#move').css('transform', 'rotate(-' + Math.atan2($(window).width(), $(window).height()) + 'rad)').show();</script>或者<script>  document.querySelector('#move').style.transform = Math.atan2($(window).width(), $(window).height())+'rad';</script>使用 CSS 和 HTML:<style>  #move {  width: 0;  height: 4px;  background: red;  position: relative;  animation: mymove 3s;  animation-fill-mode: forwards;  transform-origin: top left;}  @keyframes mymove {    from {top: 0; transform: rotate(0deg);}    to {width:100%; background-color: blue;}    }</style><body><div id="move"></div></body>該代碼在屏幕上繪制一條線,但不旋轉。如何解決這個問題?
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

您必須將您的代碼放在<script>的最底部<body>,以便代碼在您的 DOM 加載后起作用。


const move = document.querySelector('#move')

const angle = Math.atan2(document.documentElement.clientHeight, document.documentElement.clientWidth);

const width = document.documentElement.clientWidth / Math.cos(angle);


move.style.setProperty('--a', angle + 'rad');

move.style.setProperty('--w', width + 'px');

html, body, #move {margin:0; padding:0}


#move {

  width: 0;

  height: 4px;

  background: red;

  position: relative;

  animation: mymove 3s;

  animation-fill-mode: forwards;

  transform: rotate(var(--a));

  transform-origin: top left;

}


@keyframes mymove {

  to {

    width: var(--w);

    background-color: blue;

  }

}

<div id="move"></div>


查看完整回答
反對 回復 2023-12-04
  • 1 回答
  • 0 關注
  • 113 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號