我是个新手,正在制作一个让我自学的技术演示站点.我开始try 制作闪屏和导航栏,但一直在努力将闪屏图像适当地转换为导航栏.
图像从客户端窗口的中心开始,并应使用用户在窗口左上角的滚动位置进行平滑zoom 和平移.变换动画完成后,无论窗口大小如何(变换函数应适应这一点),图标应始终是屏幕边缘顶部和左侧的固定像素数.
我try 了尽可能多的方法来根据窗口的宽度和高度动态转换图像,但这是我能得到的最接近的方法:https://codepen.io/Audity/pen/KKryrjV
const icon = document.querySelector(".icon");
// Set position dynamically on page load
window.addEventListener("load", () => {
icon.style.left = window.innerWidth / 2 - icon.width / 2 + "px";
icon.style.top = window.innerHeight / 2 - icon.height / 2 + "px";
});
// Scale and translate icon between center and top left
window.addEventListener("scroll", () => {
let scale = 100 - window.scrollY / 5.75;
let left = (window.innerWidth - icon.width) / 2 - (window.scrollY * window.innerWidth) / 2000;
let top = (window.innerHeight - icon.height) / 2 - (window.scrollY * window.innerHeight) / 2000;
if (window.scrollY <= 500) {
console.log("transform: \nscale: " + scale + "%\nleft: " + left + "px\ntop: " + top + "px");
// Scale and translate icon
icon.style.transform = "scale(" + scale + "%)";
icon.style.left = left + "px";
icon.style.top = top + "px";
}
});
图像从屏幕中心开始,zoom 平稳,但在try 使用不同的窗口尺寸时会错过标记.
我搜索了这个问题的答案,但找不到任何具有相同特定需求的答案,而ChatGPT也没有特别的帮助.会很感激大家的帮助的!
嘿,干杯, 那个男人.