Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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滚动水平溢出div中心_Javascript_Html_Css_Scroll - Fatal编程技术网

使用javascript滚动水平溢出div中心

使用javascript滚动水平溢出div中心,javascript,html,css,scroll,Javascript,Html,Css,Scroll,我在一个div中有一个水平ul as选项卡条。当我单击li元素时,我想将父div中心滚动到视口。没有jquery我怎么能做到这一点 const tab1=document.getElementbyId('tab1'); const tabbar=document.getElementbyId('tabbar'); 如果(表1){ tabbar.scrollLeft=-tabbar.offsetWidth }否则{ tabbar.scrollLeft=tabbar.offsetWidth }

我在一个div中有一个水平ul as选项卡条。当我单击li元素时,我想将父div中心滚动到视口。没有jquery我怎么能做到这一点

const tab1=document.getElementbyId('tab1');
const tabbar=document.getElementbyId('tabbar');
如果(表1){
tabbar.scrollLeft=-tabbar.offsetWidth
}否则{
tabbar.scrollLeft=tabbar.offsetWidth
}

    选项卡1 选项卡2 选项卡3

首先获取所有元素,然后在每个元素上添加事件侦听器。
然后,在事件侦听器函数中,找到父元素的高度和屏幕的高度。
现在,按照上述计算将屏幕顶部应用于窗口。

JS:



如果需要更多信息,请告诉我。希望有帮助

首先获取所有元素,然后在每个元素上添加事件侦听器。
然后,在事件侦听器函数中,找到父元素的高度和屏幕的高度。
现在,按照上述计算将屏幕顶部应用于窗口。

JS:



如果需要更多信息,请告诉我。希望有帮助

你能为这个展示一个JSFIDLE吗?我无法正确理解您的查询。此外,您是否需要滚动页面以使父DIV位于中心,还是只将DIV置于中心而不滚动页面?@TusharShukla我需要滚动页面以使父DIV位于中心。我的网站在-看看移动版本,你可以更好地理解我,我想这个解决方案对你有用吗?你能展示一个JSFIDLE吗?我无法正确理解您的查询。此外,您是否需要滚动页面以使父DIV位于中心,还是只将DIV置于中心而不滚动页面?@TusharShukla我需要滚动页面以使父DIV位于中心。我的网站在上可用-看看手机版本,你可以更好地理解我,我想这个解决方案对你有用吗?我已经在你提到的链接的控制台中运行了这段代码,它按预期工作(据我所理解的要求)谢谢你的回答,但这不是我想要的。如果单击“UI UX设计”选项卡,则ID为“uix tablotable”的容器应自动向左滚动,以便tablabel“UI UX设计”可见并位于视图中心。如果你点击“Webdesign”选项卡,标签“Webdesign”应该会显示出来。你是说当点击时,
活动的
选项卡应该居中吗?很好,你理解了我:)这正是我的意思。。。我该怎么做?谢谢你的帮助,但是你有点误解了我。我不想改变标签的排列。我只想当你点击“UI UX设计”选项卡时,将其居中。如果你点击“企业标识”或“网页设计”,这些应该会再次完全可见。你能听我说吗?我已经在你提到的链接控制台中运行了这段代码,它按预期工作(就我理解的需求而言),谢谢你的回答,但这不是我想要的。如果单击“UI UX设计”选项卡,则ID为“uix tablotable”的容器应自动向左滚动,以便tablabel“UI UX设计”可见并位于视图中心。如果你点击“Webdesign”选项卡,标签“Webdesign”应该会显示出来。你是说当点击时,
活动的
选项卡应该居中吗?很好,你理解了我:)这正是我的意思。。。我该怎么做?谢谢你的帮助,但是你有点误解了我。我不想改变标签的排列。我只想当你点击“UI UX设计”选项卡时,将其居中。如果你点击“企业标识”或“网页设计”,这些应该会再次完全可见。你能跟着我吗?
var tabs = document.querySelectorAll(".tablinks");

tabs.forEach(function(tab) {
  tab.addEventListener("click", function() {
    var parentDiv = document.getElementById("uix-tabbar");
    var sTop = (parentDiv.clientHeight/2) + (screen.height/2);
    window.scrollTo(0, sTop);
  });
});