我目前在一长串商品上使用zii.widgets.CBaseListView
。该列表足够长,导致页面滚动。
当我使用列表底部的Yii寻呼机转到第2页时,浏览器窗口会保持滚动位置,而不是弹到下一个列表的顶部。
任何人都可以轻松解决此问题?我已经在这个项目的许多地方实现了这个。我已经完成了文档,我空洞了。
答案 0 :(得分:6)
这是Alex Kliuchnikau的增强型解决方案。 我还在包含ClistView小部件之前创建了一个锚,然后在CListView设置中我使用了'afterAjaxUpdate'属性。
<a id="scrollTop"></a>
<?php
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'afterAjaxUpdate' => 'function(){
$("html, body").animate({scrollTop: $("#scrollTop").position().top }, 100);}'
));
?>
答案 1 :(得分:3)
设置'ajaxUpdate'=&gt; CListView属性中的false 。
答案 2 :(得分:2)
这就是我设法使用JQuery滚动到顶部的方式。
我使用id=scrollTopPosition
在页面顶部创建了一个锚点。
页面将在寻呼机上用户点击(实际上是鼠标)滚动到顶部(标识为'yw1'
,请使用Firebug进行检查)
$('#yw1 > li').live('mouseup',function() { //mouseup to avoid conflict with request
topoflist=$('#scrollTopPosition').position();
thetop=topoflist.top-250;
$('html, body').animate({scrollTop:thetop}, 0);}
)};
答案 3 :(得分:0)
对于所有具有动画且没有锚点的YiiPagers。滚动顶部:
$('.yiiPager > li > a').live('mouseup', function () {
$('html, body').animate({ scrollTop: 0 }, 150);
});