Javascript 如何获取scrollbale窗口视口的相对尺寸
我有一个通过e.pageX e.pageY定位的工具提示(放大图像视图),我试图确保它没有隐藏在当前滚动的视图端口下面 我看到很多网站都有这个 我的代码是这样的,但我遗漏了一些东西Javascript 如何获取scrollbale窗口视口的相对尺寸,javascript,jquery,Javascript,Jquery,我有一个通过e.pageX e.pageY定位的工具提示(放大图像视图),我试图确保它没有隐藏在当前滚动的视图端口下面 我看到很多网站都有这个 我的代码是这样的,但我遗漏了一些东西 var positionImg = function(e) { var viewportWidth = $(window).width(); var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height
var positionImg = function(e) {
var viewportWidth = $(window).width();
var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height();
var mouseAtY = e.pageY;
var mouseAtX = e.pageX;
var maxBottomVPos = viewportHeight-"i dont know";
var maxTopVPos = 30;
if (mouseAtY >= maxBottomVPos)
{
tPosX = mouseAtX+ 10;
tPosY = mouseAtY -520;
}
else if (mouseAtY <= maxTopVPos)
{
tPosX = mouseAtX;
tPosY = mouseAtY +40;
}
else
{
tPosX = mouseAtX;
tPosY = mouseAtY +20;
}
$zoomContainer.css({top: tPosY, left: tPosX});
};
var positionImg=函数(e){
var viewportWidth=$(窗口).width();
var viewportHeight=window.innerHeight?window.innerHeight:$(window.height();
var mouseAtY=e.pageY;
var mouseAtX=e.pageX;
var maxBottomVPos=视口高度-“我不知道”;
var maxTopVPos=30;
if(mouseAtY>=maxBottomVPos)
{
tPosX=mouseAtX+10;
tPosY=mouseAtY-520;
}
否则,如果(鼠食)
var maxBottomVPos=viewportHeight-“我不知道”
你可能不想低于你所定位的元素的高度。因此,使用“代码”> ZooMeals的高度来计算它需要走多高。这样,整个事情就可以被包括进去。当然,你必须考虑到用户可能缩小屏幕太小而不能适应容器。
要获得滚动偏移,请使用。使用此选项,您将获得视口的大小和视口向下的距离。我找到了答案:
很简单:
var位置img=功能(e){
cntnrH=$zoomContainer.height()+230;
calHight=e.pageY-$(窗口).scrollTop()+cntnrH;
DOC=$(窗口).height()
var mouseAtY=e.pageY;
var mouseAtX=e.pageX;
如果(计算高度>=docH)
{
tPosX=mouseAtX+5;
tPosY=鼠标-cntnrH;
}
else if(calHight)您是对的,但我的问题是“当主体滚动时,如何获取屏幕的当前vewport”查看图像您已经具有视口高度。我想我知道您的意思,您需要滚动偏移吗?要获取滚动偏移,请使用scrollTop在我的情况下,公式是什么?你最后的“else”永远不会执行,因为
var mouseAtY = e.pageY;
var mouseAtX = e.pageX;
if (calHight >= docH)
{
tPosX = mouseAtX + 5;
tPosY = mouseAtY - cntnrH;
}
else if (calHight <= calHight){
tPosX = mouseAtX;
tPosY = mouseAtY + 15;
}
else
{
tPosX = mouseAtX;
tPosY = mouseAtY +20;
}
$zoomContainer.css({top: tPosY, left: tPosX});
};
doIt = $("img.hovelble");
doIt.hover(showZoomImg, hideZoomImg).mousemove(positionImg);
});