Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript和css选择器进行滚动_Javascript_Html_Css - Fatal编程技术网

使用Javascript和css选择器进行滚动

使用Javascript和css选择器进行滚动,javascript,html,css,Javascript,Html,Css,我在滚动弹出窗口方面有点问题。我想滚动弹出其中有div和一些css代码。没有ID或类 HTML CSS代码 <div style="height: 356px; overflow: hidden auto;"> 相同的代码适用于类和id <div class="123"> 这是一个类似instagram的弹出窗口。我想使用JS代码使用div或css选择器(或同时使用两者)滚动如果页面上只有一个div,那么您的代码可以工作。很可能页面上还有其他div,而您要查找的div

我在滚动弹出窗口方面有点问题。我想滚动弹出其中有div和一些css代码。没有ID或类

HTML CSS代码

<div style="height: 356px; overflow: hidden auto;">
相同的代码适用于类和id

<div class="123">

这是一个类似instagram的弹出窗口。我想使用JS代码使用div或css选择器(或同时使用两者)滚动

如果页面上只有一个div,那么您的代码可以工作。很可能页面上还有其他div,而您要查找的div可能不是第一个

如果要滚动页面上的所有溢出div,可以执行以下操作

var divs = document.getElementsByTagName("div");

for (let div of divs) {
  if (div.style.overflow.includes("auto")) {
    div.scrollTop = div.scrollHeight;
    // break if you only want the first match
    // break;
  }
}
如果没有,您可以尝试使用并指定父(弹出窗口)id或类名并选择子div来定位确切的div

e、 g

基于您的评论的解决方案

var div=document.querySelector(“div[style='flex-direction:column;']);
div.scrollTop=div.scrollHeight
div{
高度:100px;
宽度:200px;
溢出:自动;
}

Lorem ipsum dolor sit amet,是一位杰出的献身者。维韦拉胡斯托的克拉斯。在厄洛斯·埃吉特·杜伊(eros eget dui accumsan accumsan and suscipit ante)的监狱里。埃涅亚人的尊严、卢克图斯·麦格纳·奎斯、鲁特鲁姆·奥古斯。

document.getElementsByClassName(“123”);div是大多数html文档中非常常见的标记名,可能是您使用了错误的div我在ubot studio中使用它,并且我添加了两个条件来查找确切的div我们能从get元素中选择css吗?
var objDiv=document.querySelector(“div[style=“style=”flex direction:column;“]”);objDiv[0].scrollTop=objDiv[0].scrollHeight;
我尝试过这个,但它对我无效
querySelector
返回单个元素,所以不要使用
[0]
索引器。另外,您的选择器中也重复了样式。它可能应该是
document.querySelector(“div[style='flex-direction:column;'])
。不建议使用此方法,因为div的样式可能会更改。没有问题,我可以一次一次地更改样式。问题是它不起作用,我也尝试了此代码
var objDiv=document.getElementsByTagName(“div[style=flex direction]”;objDiv[0]。scrollTop=objDiv[0].scrollHeight;
您使用的是
getElementsByTagName
而不是不支持选择器的
querySelector
。要清楚,您应该使用的是
var objDiv=document.querySelector(“div[style='flex-direction:column;']);objDiv.scrollTop=objDiv.scrollHeight;
您的div标签html到底是什么样子的?我看到它适用于此演示,但不适用于我正在进行的Instagram。不过,我附上了我试图滚动的屏幕截图,以便您可以在控制台中尝试并更好地理解它
var objDiv = document.getElementsByClass("123");
objDiv[0].scrollTop = objDiv[0].scrollHeight;
var divs = document.getElementsByTagName("div");

for (let div of divs) {
  if (div.style.overflow.includes("auto")) {
    div.scrollTop = div.scrollHeight;
    // break if you only want the first match
    // break;
  }
}
document.querySelector("#popup_div_id div");