javascript - 在angular4中鼠标滚动缩放图像?
问题描述
我有一段代码将在鼠标滚动时放大/缩小,如下所示
<!DOCTYPE html>
<html>
<body>
<script src='https://www.cssscript.com/demo/image-zoom-pan-mouse-interactions-zoomnpan/zoomnpan.js'></script>
<style>
#demo {
width: 460px;
height: 250px;
background-image: url(https://unsplash.it/3000/2000/?random);
background-repeat: no-repeat;
background-position: 50% 50%;
}
</style>
<div id="demo">
</div>
<script>
var p;
function enable(){
p = new ZoomNPan(demo);
p.minScale = 100;
}
enable();
</script>
</body>
</html>
我在角度搜索相同的功能。我有动态生成的图像,我想在鼠标滚动时放大/缩小。
有没有与上面的代码类似的库?
解决方案
这将是一个示例,希望它可以为您提供一些正确方向的信息。
您可以做的是捕捉鼠标离开的事件并在 html 中输入:
(mouseleave)=mouseLeave(yourLinkedID)
(mouseenter)=mouseEnter(yourLinkedID)
现在您知道您的鼠标是否在图片内。接下来,您要捕获滚动事件。
(scroll)="onScroll($event)"
现在最后一个技巧是对我们 ngStyle 像:
[ngStyle]="{'background-size': backgroundSize}"
在您的组件中,enter 会将值设置为 true,将 leave 设置为 false:
onScroll(_ev: any) {
if(this.entered){
//do something with event
//if scroll up this.backgroundSize 50% +5
//if scroll down this.backgroundSize 50% -5
}
}
推荐阅读
- outlook - 如何在 Outlook 2016 和 2013 中删除额外的、不需要的填充?
- r - ggplot2 使用 ..count.. 来控制 geom_point 的大小
- javascript - React 和 laravel 混合:找不到模块'@babel/preset-react'
- javascript - 在后面的代码中将 JS 参数传递给 c# 函数-.net
- javascript - 无法读取 Express js 中未定义的属性“状态”
- json - 如何使用字符串以角度搜索 json 对象?
- android - WorkManager NetworkType.CONNECTED 在中国防火墙后面不起作用
- html - 如何设置可以在烧瓶中上传的文件数
- mapbox - Mapbox 更改单个兴趣点的标签
- c - 如何更改 CMake 链接顺序?