我有一个摄影背景和一个SVG图形作为掩模使用。我在同一个元素上使用一个图像作为背景图像,并使用svg掩码作为掩码图像,得到如下结果:
我的问题是在滚动我想扩大这一形象,使其适合屏幕上的鼠标滚动。
我是否需要任何其他第三方插件来实现这一点?
我使用了JavaScript,但没有得到想要的结果。
window.addEventListener('scroll', function() {
const el = document.querySelector('.el');
const scrollPercent = window.scrollY / (document.documentElement.scrollHeight - window.innerHeight);
const newSize = (100 + scrollPercent * 100) + 'vw';
el.style.width = newSize;
el.style.height = newSize;
});
* {
box-sizing: border-box;
}
body {
margin: 0;
background: #8f7a66;
}
.el {
width: 100vw;
height: 100vh;
padding: 1rem;
background-image: url(https://images.unsplash.com/photo-1528287942171-fbe365d1d9ac?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&w=1200&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ);
background-size: contain;
background-position: center;
background-repeat: no-repeat;
mask-image: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/3/sun.svg);
mask-size: 50vmin;
mask-repeat: no-repeat;
mask-position: center;
}
<div class="el"></div>
1条答案
按热度按时间67up9zun1#
编辑:
您已在链接的codepen中正确获取了它
几处更正:
mask-*
属性需要供应商前缀此值是在svg内部适合最大尺寸所需的总百分比。
例如,假设内部部分是SVG大小的50%,则将限制设置为200%