Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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 使用仅垂直固定的位置,避免水平移动_Javascript_Html_Css - Fatal编程技术网

Javascript 使用仅垂直固定的位置,避免水平移动

Javascript 使用仅垂直固定的位置,避免水平移动,javascript,html,css,Javascript,Html,Css,我发现了一组箭头,如图中所示: 我需要的箭头垂直移动时,页面将被向下和向上滚动:我可以存档这个使用位置:固定,但问题是,这种CSS格式将添加限制也为横向scoll,这是不允许在这个网站上。有什么办法可以避免这个问题吗 这是我代码的一部分: CSS: 然后我的HTML代码: <div id="cont_ArrowL" ng-show ="!routingCtrl.isFirstElement()" > <div id="LContBack"> <s

我发现了一组箭头,如图中所示:

我需要的箭头垂直移动时,页面将被向下和向上滚动:我可以存档这个使用位置:固定,但问题是,这种CSS格式将添加限制也为横向scoll,这是不允许在这个网站上。有什么办法可以避免这个问题吗

这是我代码的一部分:

CSS:

然后我的HTML代码:

<div id="cont_ArrowL" ng-show ="!routingCtrl.isFirstElement()" >
   <div id="LContBack">
      <span id="textR">
      Indietro
      <span>
   </div>
   <div id="RContBack">
      <md-icon md-svg-src="./image/left.svg" aria-label="android " id="arrowR"  class="goPrevious" ng-click="routingCtrl.previousPage()">Indietro</md-icon>
   </div>
</div>
<div id="cont_ArrowR" ng-show ="!routingCtrl.isLastElement()">
   <div id="LCont">
      <span id="textR">
      Avanti
      <span>
   </div>
   <div id="RCont">
      <md-icon md-svg-src="./image/right.svg" aria-label="android " id="arrowR" class="goNext"  ng-click="routingCtrl.nextPage()"></md-icon>
   </div>
</div>

英迪特罗
英迪特罗
阿凡蒂

首先需要检测水平滚动,然后更改“位置固定”属性

var lastScrollLeft = 0;
$(window).scroll(function() {
    var documentScrollLeft = $(document).scrollLeft();
    if (lastScrollLeft != documentScrollLeft) {
        console.log('scroll horizontol');
        lastScrollLeft = documentScrollLeft;
         $("#Arrow").css({'position' : 'absolute'})
    }
});
现在的问题是,它设置了水平和垂直运动的绝对位置,所以检测它何时回来并再次设置为固定

scrollpos = $(document).scrollLeft();
if (scrollpos == 0){$("#Arrow").css({'position' : 'fixed'})}

你需要澄清你的问题。这个
但问题是,这种CSS格式也会为水平scoll添加约束,这在本网站上是不允许的
没有任何意义。试着用一个工作示例来演示您的问题,而不是复制/粘贴您自己的代码。阅读如何创建一个你是对的,我会更好地表达我自己:问题是我需要使用固定位置,但我正在寻找一种方法来阻止水平效果,只允许垂直效果。请更新问题以演示你的问题,这样我们可以帮你解决。那么你的页面可以水平滚动吗?如果是这样的话,唯一可行的方法也许就是让你的内容本身可以滚动,并将所有三个元素相对放置在彼此相邻的位置。
scrollpos = $(document).scrollLeft();
if (scrollpos == 0){$("#Arrow").css({'position' : 'fixed'})}