問題:
SMIL 的animate 標籤已棄用,需要CSS 懸停過渡
解決方案:
去掉set標籤,在element_tpl中加入CSS:hover偽類別:
.element_tpl:hover {
stroke-opacity: 0.5;
}
問題:
使元素以動畫方式在提交的更改後縮放幾次。
解決方案:
考慮以下選項:
@keyframes scale-animation {
0% { transform: scale(1); }
50% { transform: scale(1.12); }
100% { transform: scale(1); }
}
然後將動畫套用到元素上:
.element_tpl {
animation: scale-animation 0.5s infinite alternate;
}
// Create a new animation
const animation = document.timeline.addAnimation();
// Define keyframes
const keyframes = [
{ transform: 'scale(1)', offset: 0 },
{ transform: 'scale(1.12)', offset: 0.5 },
{ transform: 'scale(1)', offset: 1 }
];
// Apply keyframes to the animation
animation.effect = keyframes;
// Target the element
animation.target = document.querySelector('.element_tpl');
問題:
動畫元素放大與縮小
解決方案:
.element_tpl {
transition: transform 0.2s;
}
.element_tpl:active {
transform: scale(1.1);
}
// Add event listener
document.querySelector('.element_tpl').addEventListener('click', (event) => {
// Create a new animation
const animation = document.timeline.addAnimation();
// Define keyframes
const keyframes = [
{ transform: 'scale(1)', offset: 0 },
{ transform: 'scale(1.1)', offset: 0.2 },
{ transform: 'scale(1)', offset: 0.4 },
];
// Apply keyframes to the animation
animation.effect = keyframes;
// Target the element
animation.target = event.target;
});
問題:
將 SMIL 動畫傳送到 CSS 或 Web 動畫。
解決方案:
使用 Eric Willigers 創建的 SMIL polyfill:https://github.com/ericwilligers/svg-animation。這個polyfill將SMIL動畫轉換為Web動畫,提供了另一種實作它們的方法。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3