[英]Page transition with CSS transform problems
我想在两个页面之间做一个简单的过渡。 动画应该是从右到左的移动以转到第二页,然后是从左到右的返回第一页。
我已经做到了,但是问题是重复了页面的宽度。
const screen1 = document.getElementsByClassName('screen1')[0]; const screen2 = document.getElementsByClassName('screen2')[0]; document.getElementById('toggle1').addEventListener('click', () => { screen1.style.transform = 'translatex(-100%)'; screen2.style.transform = 'translatex(0)'; }); document.getElementById('toggle2').addEventListener('click', () => { screen1.style.transform = 'translatex(0)'; screen2.style.transform = 'translatex(100%)'; });
body { margin: 0; } .container { position: absolute; top: 0; left: 0; right: 0; bottom: 0; } .screen1 { position: absolute; width: 100%; height: 100%; background-color: blue; transition: transform .5s; } .screen2 { position: absolute; width: 100%; height: 100%; background-color: red; transform: translatex(100%); transition: transform .5s; }
<div class="container"> <div class="screen1"> <button id="toggle1">Toggle</button> </div> <div class="screen2"> <button id="toggle2">Toggle</button> </div> </div>
我遇到的问题是:
overflow-x: hidden
隐藏滚动条overflow-x: hidden
但用户可以随时滚动到下一个屏幕。 有某种方法可以解决此问题并维持“幻灯片”过渡?
将overflow:hidden
属性添加到您的.container
只需添加overflow: hidden
到您的容器即可。
const screen1 = document.getElementsByClassName('screen1')[0]; const screen2 = document.getElementsByClassName('screen2')[0]; document.getElementById('toggle1').addEventListener('click', () => { screen1.style.transform = 'translatex(-100%)'; screen2.style.transform = 'translatex(0)'; }); document.getElementById('toggle2').addEventListener('click', () => { screen1.style.transform = 'translatex(0)'; screen2.style.transform = 'translatex(100%)'; });
body { margin: 0; } .container { position: absolute; top: 0; left: 0; right: 0; bottom: 0; overflow: hidden; } .screen1 { position: absolute; width: 100%; height: 100%; background-color: blue; transition: transform .5s; } .screen2 { position: absolute; width: 100%; height: 100%; background-color: red; transform: translatex(100%); transition: transform .5s; }
<div class="container"> <div class="screen1"> <button id="toggle1">Toggle</button> </div> <div class="screen2"> <button id="toggle2">Toggle</button> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.