Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用svg图像、css、html和js的页面之间的转换效果_Javascript_Html_Animation_Svg_Css Transitions - Fatal编程技术网

Javascript 使用svg图像、css、html和js的页面之间的转换效果

Javascript 使用svg图像、css、html和js的页面之间的转换效果,javascript,html,animation,svg,css-transitions,Javascript,Html,Animation,Svg,Css Transitions,好的,也许stackoverflow能帮上忙?:) 我正在尝试使用svg图像创建页面转换效果,但没有任何运气。 当用户单击第1页中的链接时,菱形svg会像门户一样淡入第2页 基本理念是在Alphaville-永葆青春视频的介绍中再现太空旅行: :) 也许钻石也会从蓝色变为透明(但这是下一步) 菱形svg: 我建议您使用svg而不是svg,因为为这么大的svg制作动画会非常慢而且非常滞后。可以更改剪辑路径以显示所需内容。创建了一个很好的生成器来帮助实现这一点 对于动画本身,可以增加宽度和高度以适合

好的,也许stackoverflow能帮上忙?:)

我正在尝试使用svg图像创建页面转换效果,但没有任何运气。 当用户单击第1页中的链接时,菱形svg会像门户一样淡入第2页

基本理念是在Alphaville-永葆青春视频的介绍中再现太空旅行: :)

也许钻石也会从蓝色变为透明(但这是下一步)

菱形svg:

我建议您使用svg而不是svg,因为为这么大的svg制作动画会非常慢而且非常滞后。可以更改剪辑路径以显示所需内容。创建了一个很好的生成器来帮助实现这一点

对于动画本身,可以增加宽度和高度以适合屏幕。然后通过设置Z轴动画填充剩余部分

全屏动画比小预览效果更好

const links=document.queryselectoral(“.page transition”);
const overlay=document.querySelector(“.overlay\uuu diamond”);
for(链接的常量链接){
link.addEventListener(“单击”,(事件)=>{
event.preventDefault();
添加(“叠加钻石——动画”);
setTimeout(()=>window.location.reload(),1000);
//这一个是正确的,上面的一个用于演示
//setTimeout(()=>(window.location.href=link.href),1000);//与动画持续时间相同
});
}
.page{
背景:绿色;
/*仅出于取消中心设置的目的,只是为了增加页面大小*/
位置:绝对位置;
左:0;
排名:0;
宽度:100%;
身高:100%;
}
.覆盖{
位置:绝对位置;
左:0;
排名:0;
宽度:100%;
身高:100%;
显示器:flex;
对齐项目:居中;
证明内容:中心;
溢出:隐藏;
指针事件:无;
透视图:translateZ需要500px;/*才能工作*/
}
.叠加钻石{
宽度:100%;
身高:100%;
背景:蓝色;
动画:淡出1s线性向前;
}
.overlay__菱形-设置动画{
动画:缩放1s线性向前;
剪辑路径:多边形(50%0%,75%50%,50%100%,25%50%);
}
@关键帧淡出{
0% {
不透明度:1;
}
100% {
不透明度:0;
}
}
@关键帧缩放{
0% {
宽度:0;
身高:0;
变换:translateZ(0);
}
100% {
宽度:100%;
身高:100%;
transform:translateZ(400px);/*不能高于透视图*/
}
}

我建议您使用svg而不是svg,因为为这么大的svg制作动画会非常缓慢而且非常滞后。可以更改剪辑路径以显示所需内容。创建了一个很好的生成器来帮助实现这一点

对于动画本身,可以增加宽度和高度以适合屏幕。然后通过设置Z轴动画填充剩余部分

全屏动画比小预览效果更好

const links=document.queryselectoral(“.page transition”);
const overlay=document.querySelector(“.overlay\uuu diamond”);
for(链接的常量链接){
link.addEventListener(“单击”,(事件)=>{
event.preventDefault();
添加(“叠加钻石——动画”);
setTimeout(()=>window.location.reload(),1000);
//这一个是正确的,上面的一个用于演示
//setTimeout(()=>(window.location.href=link.href),1000);//与动画持续时间相同
});
}
.page{
背景:绿色;
/*仅出于取消中心设置的目的,只是为了增加页面大小*/
位置:绝对位置;
左:0;
排名:0;
宽度:100%;
身高:100%;
}
.覆盖{
位置:绝对位置;
左:0;
排名:0;
宽度:100%;
身高:100%;
显示器:flex;
对齐项目:居中;
证明内容:中心;
溢出:隐藏;
指针事件:无;
透视图:translateZ需要500px;/*才能工作*/
}
.叠加钻石{
宽度:100%;
身高:100%;
背景:蓝色;
动画:淡出1s线性向前;
}
.overlay__菱形-设置动画{
动画:缩放1s线性向前;
剪辑路径:多边形(50%0%,75%50%,50%100%,25%50%);
}
@关键帧淡出{
0% {
不透明度:1;
}
100% {
不透明度:0;
}
}
@关键帧缩放{
0% {
宽度:0;
身高:0;
变换:translateZ(0);
}
100% {
宽度:100%;
身高:100%;
transform:translateZ(400px);/*不能高于透视图*/
}
}


非常感谢雷诺的快速回答和巧妙的解决方案!它就像一个符咒!我现在很高兴,:D下一步是通过钻石看到下一页,但我想这需要另一种技术。我正在测试som内容。@hardin81,这其实很简单,只要让
div
在pageload上淡出即可。当你导航时,它看起来很平滑。当然,除非您使用react或vue之类的工具,否则页面在加载表单时总是会闪烁。请参阅代码片段示例再次感谢您在这方面的帮助!它很管用,看起来很酷。我把钻石的背景改成了一个空间图像背景,背景逐渐变淡。就像我想要的!非常感谢。非常感谢雷诺的快速回答和聪明的解决方案!它就像一个符咒!我现在很高兴,:D下一步是通过钻石看到下一页,但我想这需要另一种技术。我正在测试som内容。@hardin81,这其实很简单,只要让
div
在pageload上淡出即可。当你导航时,它看起来很平滑。当然,除非您使用react或vue之类的工具,否则页面在加载表单时总是会闪烁。请参阅代码片段示例再次感谢您在这方面的帮助!它很管用,看起来很酷。我把钻石的背景改成了一个空间图像背景,背景逐渐变淡。就像我想要的!非常感谢。