我正在尝试将页面滚动到具有特定ID的帖子,例如21后等等22后
但它不起作用。请问我的语法可能有什么问题?
// this is number of posts visible. returns e.g. 2
var posts_visible = <?php echo $news['num_per_page']; ?>;
// this is number of more posts loaded. returns e.g. 2
var posts_more = <?php echo $news['num_per_more']; ?>;
// here i calculate the value to know which position should we be at after scroll
var newposition = posts_visible + (posts_more * $.cookie('n_more'));
// here i am trying to set #post-(thepostnumber)
var thispost = '$("#post-' + newposition + '")';
$('html,body').animate({
scrollTop: thispost.position().top + 'px',
scrollLeft: thispost.position().left + 'px'
},1000);
请注意alert(thispost)
准确地返回具有我应该使用的正确ID的帖子。只是无法让它在动画/滚动中工作。请帮帮我
答案 0 :(得分:4)
尝试:
var thispost = $("#post-" + newposition);
您不想创建字符串“$("#post-42")
”,您想要创建字符串“#post-42
”并将其传递给$
函数。
答案 1 :(得分:1)
您只需将选择器作为字符串,而不是整个$()
函数调用,如下所示:
var thispost = $("#post-" + newposition).position();
$('html,body').animate({
scrollTop: thispost.top + 'px',
scrollLeft: thispost.left + 'px'
},1000);
此外,它可以像上面一样优化...无需再调用.position()
两次以获得相同的结果。
答案 2 :(得分:0)
var thispost = $("#post-"+ newposition);
$('html,body').animate({
scrollTop: thispost.position().top + 'px',
scrollLeft: thispost.position().left + 'px'
},1000);
答案 3 :(得分:0)
不确定这是否有用,但值得分享。当我想滚动http://demos.flesler.com/jquery/scrollTo/
时,我会使用此插件