对不起,如果我的问题的标题似乎不清楚。我正在尝试创建一个工具,允许用户点击图片中的任意位置,并将该图片的片段剪下以备后用,类似于您在eBay或亚马逊上找到的内容,只需通过悬停放大图片即可超过它。背景大小如何与元素相关?
我的做法(并请让我知道,如果有更好的一个)是片断的背景图像设置为被观察的图像。必须设置背景大小,以便片段背景中的图像大小为页面上显示的图像大小。从那里,我将图像容器和代码片段容器之间的偏移差异化,并使用X和Y组件设置负背景位置。
我面对的问题是,当我设置的背景大小的图像的大小相同,该代码段内的背景图像的尺寸远远大于被观察的图像的尺寸小。有任何想法吗?
这是我到目前为止有:
console.log($("#snippet").offset().top - $("#image").offset().top);
$(window).click(function(event) {
$("#snippet").css("top", event.pageY);
$("#snippet").css("left", event.pageX);
});
#image {
height: 19em;
width: auto;
border: 2px solid orange;
}
#snippet {
background: url(https://i.ytimg.com/vi/CP0bGdEj_xg/maxresdefault.jpg);
background-repeat: no-repeat;
background-position: -200px -10px;
background-size: 19em auto;
position: absolute;
left: 50%;
top: 50%;
height: 100px;
width: 100px;
border: 1px solid yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/sneakapeek.css" />
<script src="js/jquery.min.js"></script>
</head>
<body>
<img id="image" src="https://i.ytimg.com/vi/CP0bGdEj_xg/maxresdefault.jpg">
<div id="snippet"></div>
<script src="js/sneakapeek.js"></script>
</body>
</html>
我使用一个比在实施例不同的图像。如果它不缩放,它非常小,但它是一个SVG。我会如何处理这个问题? – Zulfe
@Zulfe不确定,我需要看到它。那是我第一次做这样的事情。你为什么不在你的OP中使用这个img? –
@Zulfe我对图像的中心效果很好,但似乎失去了边缘的百分比...仍然看着那.... –