Javascript 当div内容位于视口外部时滚动
我有这样一段简单的代码 我想要的是,当用户点击列表中最后的一些元素来显示内容时Javascript 当div内容位于视口外部时滚动,javascript,jquery,viewport,scrollto,Javascript,Jquery,Viewport,Scrollto,我有这样一段简单的代码 我想要的是,当用户点击列表中最后的一些元素来显示内容时 $('a.showMeThis').click(function() { $(this).next('.content').slideToggle('fast', function() { // there's go all the magic }); }); 并且它在视口之外(部分或全部)-滚动div的高度,这样他就可以看到所有内容 我一直在寻找这方面的一些逻辑,玩弄position(
$('a.showMeThis').click(function() {
$(this).next('.content').slideToggle('fast', function() {
// there's go all the magic
});
});
并且它在视口之外(部分或全部)-滚动div的高度,这样他就可以看到所有内容
我一直在寻找这方面的一些逻辑,玩弄position().top、window.innerHeight等等,但它从来没有按照我想要的方式运行
希望你们能帮助我,保重,祝你们有一个愉快的一天 使用和
在OP的评论后更新 使用及
在OP的评论后更新
在这种情况下,它看起来是这样的: 我认为,这段代码足以理解逻辑=)
UPD:注意,您应该插入
并返回false编码>进入。单击事件以防止跳转到#
锚定 在这种情况下,它看起来是这样的:
我认为,这段代码足以理解逻辑=)
UPD:注意,您应该插入并返回false编码>进入。单击事件以防止跳转到#
锚定 是的,但我需要一个条件-当它离开视口时,动画(滚动),而不是在所有情况下,只有当.content离开视口时。对于这种情况,是document.documentElement.clientHeight
那里?@morodeer ForIEStill没有。您正在尝试获取高度$this
,但应获取高度$this。下一步('.content')
是的,但我需要一个条件-当它超出视口时,动画(滚动),而不是在所有情况下,仅当.content离开视口时。在这种情况下,document.documentElement.clientHeight
在那里?@morodeer ForIEStill不在那里。您正在尝试获取高度$this
,但应获取高度$this.next('.content')
$('a.showMeThis').click(function () {
var $this = $(this);
$this.next('.content').slideToggle('fast', function () {
$('html,body').animate({
scrollTop: $this.offset().top
}, 'slow');
});
});
$('a.showMeThis').click(function () {
var $this = $(this);
$this.next('.content').slideToggle('fast', function () {
if ($this.position()) {
if ($this.position().top + $this.height() > $(window).scrollTop() + (window.innerHeight || document.documentElement.clientHeight)) {
$('html,body').animate({
scrollTop: $this.position().top - (window.innerHeight || document.documentElement.clientHeight) + $this.height() + 15 + $this.next('.content').height()
}, 100);
}
}
});
});
if ($(this).parent().offset().top + $(this).height() > window.innerHeight + $(window).scrollTop())
{
var a = $(this)
$('html,body').animate({scrollTop: $(a).parent().offset().top})
}