Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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_Jquery_Css - Fatal编程技术网

Javascript 装载时跳到潜水舱底部

Javascript 装载时跳到潜水舱底部,javascript,jquery,css,Javascript,Jquery,Css,我已经建立了垂直时间线,但在我完成之后,我意识到我最早的事件在顶部,而较新的事件则添加在下面。因此,我决定将这个div的高度设为270px,并加上overflow:overlay(这个div是我的时间线事件的父级,所有事件都有自己的div,现在它的cca高度为6000px all)始终跳到时间线的底部,以便查看当前事件 这些事件的父div具有class.TIMELINEcolumn 我在网上找到的脚本是$('#yourDiv').scrollTop($('#yourDiv')[0].scroll


我已经建立了垂直时间线,但在我完成之后,我意识到我最早的事件在顶部,而较新的事件则添加在下面。因此,我决定将这个div的高度设为270px,并加上overflow:overlay(这个div是我的时间线事件的父级,所有事件都有自己的div,现在它的cca高度为6000px all)始终跳到时间线的底部,以便查看当前事件

这些事件的父div具有class
.TIMELINEcolumn

我在网上找到的脚本是
$('#yourDiv').scrollTop($('#yourDiv')[0].scrollHeight)

我在页面底部写的是:

$('.TIMELINEcolumn').scrollTop($('.TIMELINEcolumn')[0].scrollHeight);

但是没有成功,我也试着把这个脚本放到文档的开头,也没有成功。我还发现了一些使用display:flex的纯css方法,而不是反向应用,但这不是我想要的。它看起来很简单,但对我来说它超级复杂。
起初,我真的想在时间轴上为这些事件设置工作锚,但即使这个简单的任务总是在加载时跳到div的底部对我来说也是一场噩梦。如果有人有线索,请尝试以原始的方式解释一下,以便我也能理解您的代码。非常感谢。

你可以做这么简单的事情。在窗口加载时,将url目标设置为div目标的哈希。如果您启用了autoscroller,它将滚动而不是跳转

window.document.onload = function(e){ 
        window.location.href = 'www.yourwebaddress.com/#targetdiv';
    }

<div id ="targetdiv"></div>
window.document.onload=函数(e){
window.location.href='www.yourwebaddress.com/#targetdiv';
}

我还不知道滚动事件。但是,与其让页面到处跳转(6000px在你的普通屏幕上是一个很大的滚动),不如把所有的元素都反转一下怎么样

看一看。这是为了逆转所有元素。其要点如下:

ul = $('#my-ul'); // your parent ul element
ul.children().each(function(i,li){ul.prepend(li)})
附加到您的命名中:

$timeline = $('.TIMELINEcolumn');
$timeline.children().each(function(key, child) {
    $timeline.prepend(child)
});

似乎您正在使用jquery中的
onload
意味着在
$(文档)中使用您的代码。ready()
函数如下:

$(document).ready(function(){
      $('.TIMELINEcolumn').scrollTop($('.TIMELINEcolumn')[0].scrollHeight);
})
当然如果代码
$('.TIMELINEcolumn').scrollTop($('.TIMELINEcolumn')[0].scrollHeight),则此操作应该有效适用于任何其他事件,即它是正确的代码。要进行测试,请尝试以下操作:

<a href="javascript:scrollto()">Scroll to bottom</a>
<script>
   function scrollto(){
      $('.TIMELINEcolumn').scrollTop($('.TIMELINEcolumn')[0].scrollHeight);
   }
</script>
//在
主体的顶部插入以下内容:

<a href="javascript:scrollto()">Scroll to bottom</a>
<script>
   function scrollto(){
      $('.TIMELINEcolumn').scrollTop($('.TIMELINEcolumn')[0].scrollHeight);
   }
</script>

如果单击链接
滚动到底部
可以正常工作,那么
$(document).ready()
也可以正常工作。

这是一种正确的方法

1)将此100%纯HTML锚定标记插入页面末尾,您希望页面滚动到的位置:


非常感谢。哇,这么简单,理论上它应该是可行的,这很有道理。body标签中的Javascript在加载时工作并触发(我在访问我的页面时看到url发生了变化),但它没有跳转到锚。我还检查了timeline.php是否生成了它,它是否生成了它,所以我只是认为它不起作用,因为Javascript在加载时执行得太快了,而且可能它当时还没有提供锚。谢谢。我现在也会尝试其他人的答案,看看。布拉诺,谢谢你回来。我很失望它没有起作用。请确保将锚定
放在页面末尾,即可能在重要div之后(或者,作为测试,将其作为页面上的最后一件事)。祝你好运。请原谅,再想想,如果你没有找到更好的方法来获得它,也许你可以在这里实现一些变通方法,在我的代码中进行一些额外的修改,以更好地满足你的需要。一种方法是从body标签中去掉我建议的javascript,并将其“单独”(当然,在需要的页面中)放在页面的末尾。但比这更好的是,我认为值得尝试一些解决方案,比如在div的末尾放上“getanchor”命令,这样每当你的时间线得到新内容时,每次加载时,它都会滚动到末尾。statosdotcom我错了,你的代码工作正常!我只是没有注意到它,因为我的父div有相对位置,而内部的事件div有绝对位置和指定的距离。因此,我的锚点应该也有指定的距离从顶部,以便出现在底部(这是我犯了错误)。太棒了,非常感谢。最后一个问题,你认为我可以在加载时设置滚动动画0.5秒吗?如果它很复杂,让我们忽略这个请求。这里是我的例子,但我仍然需要在许多方面纠正这个时间线。这是我在编码方面的第一件事。除了一些带有css的静态html页面。您好,Nukeface,正如我提到的,我已经尝试应用flex和flex reversed,这与您描述的类似,不幸的是,切换时间轴的方向意味着我必须编写php,从头开始生成事件。所以我用锚来解决这个问题,然后跳到底部。非常感谢你对我的请求做出回应。嗨,科格鲁,谢谢你的这个想法,事实上,我在statosdotcom的帮助下使用了类似的东西。谢谢你的帮助。谢谢SaidbakR,我已经试过了,但由于某种原因它不起作用。我已经把它包括在身体里了,而且。。。这是我的文件,但它不起作用。我喜欢这个想法,因为我不需要带锚的div。您认为我是否也需要将$(document).ready()放在代码的某个位置?这就是“不起作用的例子”。