我无法将var设置为window.screenY

时间:2019-12-17 23:24:26

标签: javascript html css

我虽然不懂Java,但是对HTML,CSS和JavaScript还是陌生的。

我想要一个我停下来的图片库,但是我唯一能编写的代码是在页面底部的容器中打开的。因此,我编码为使它更“专业”的是一些JavaScript函数,它们可以:首先将其打开,保存y位置,然后一直向下滚动,从而产生打开图像的错觉。之后,当您单击x时,它将向上滚动到x = 0和保存的y位置,并关闭窗口。

一切正常,但是y位置的变量仅保存为0。这是HTML代码调用它的部分:

<option <?php echo $selected?> value="<?php echo $row[0]; ?>"><?php echo $value;?></option>

以下是JavaScript函数:

<img src="image.jpg" alt="An Image" style="width:100%" onclick="myFunction(this);">`

最后,这是用于关闭并滚动到“窗口”的html代码:

var windowy;
  function myFunction(imgs) {
    var expandImg = document.getElementById("expandedImg");
    var imgText = document.getElementById("imgtext");
    expandImg.src = imgs.src;
    imgText.innerHTML = imgs.alt;
    expandImg.parentElement.style.display = "block";
    windowy = window.screenY;
    window.scrollBy(0, 999999999999999);
  }
  function  quitall(imgs) {
    imgs.parentElement.style.display='none';
    window.scrollTo(0,windowy);
  }

我对此并不陌生,所以如果您问我函数括号中的“ this”或“ imgs”是什么,我不知道。我只需要知道在声明变量时我在做什么。

2 个答案:

答案 0 :(得分:0)

如果要捕获页面位置的滚动,我的建议是尝试window.pageYOffset

有关它的更多信息https://developer.mozilla.org/en-US/docs/Web/API/Window/pageYOffset

答案 1 :(得分:0)

似乎window.scrollBy(0, 999999999999999);导致页面滚动到底部(实际上是999999999999999px)-您很可能打算滚动到新更新的expandImg元素的顶部。使用window.scrollTo(0,expandImg.offsetTop);将窗口滚动到offsetTop的顶部。