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()放在代码的某个位置?这就是“不起作用的例子”。