我正在使用wordpress插件将帖子滚动到无限。 当我悬停在帖子上时,我希望滚动停止。 我尝试使用
<script>
jQuery(document).ready(function($) {
$('.spe_div').hover(function()
{
spe_scrollOn='false';
},function()
{
spe_scrollOn='true';
spe_content();
}
);
});
</script>
我使用的插件名称是wordpress scroll excerpt插件。
非常感谢你的帮助。
答案 0 :(得分:1)
我遇到了同样的问题,这就是我想要暂停上班的时候,我还花时间纠正滚动效果在它顶部时的“打嗝”或口吃滚动(会跳几个像素并且看起来不平滑)。
更改为scroll-post-excerpt.php:
第72行:
变化
$dis_num_height = $dis_num_height + 4;
到
$dis_num_height = $dis_num_height;
(这解决了口吃,基本上改变是从行尾删除+ 4)
在第97行插入一个新行,添加以下代码:
var spe_Pause = false;
将此代码插入spe_createscroll()函数,我将其插入第104行
// Add Hover detection for pausing
jQuery(spe_obj).hover(function(){spe_Pause = true;}, function(){spe_Pause = false;});
此文件的最后一次编辑是为了确保在此脚本文件之前加载了jQuery,为此我修改了wp_enqueue_script代码(现在在第198行):
wp_enqueue_script( 'scroll-post-excerpt', get_option('siteurl').'/wp-content/plugins/scroll-post-excerpt/scroll-post-excerpt.js',array( 'jquery' ));
(注意在函数array( 'jquery')
末尾传递的附加参数,这是导致脚本等待的原因。
对scroll-post-excerpt.js的更改:
我最终对函数spe_scroll()进行了一些更改,修改后的代码为:
function spe_scroll() {
if(spe_Pause == true) {
setTimeout("spe_scroll()",15);
return;
}
spe_obj.scrollTop = spe_obj.scrollTop + 1;
spe_scrollPos++;
//if ((spe_scrollPos%spe_heightOfElm) == 0) {
if (spe_obj.scrollTop == spe_heightOfElm) {
spe_scrollPos = 0;
spe_numScrolls--;
if (spe_numScrolls == 0) {
spe_obj.scrollTop = '0';
spe_content();
} else {
if (spe_scrollOn == 'true') {
spe_content();
}
}
} else {
setTimeout("spe_scroll();", 15);
}
}
为了打破它,我先插入
if(spe_Pause == true) {
setTimeout("spe_scroll()",15);
return;
}
这将检查在第一个文件的修改中添加的悬停参数,并执行早期功能退出并重置以检查用户何时搬出。
然后我修改了if()语句,没有看到模数方法的需要,所以我修改它来测试元素的当前scrollTop
if (spe_obj.scrollTop == spe_heightOfElm) {
(如果您愿意,可以使用spe_scrollPos变量。)
在if()语句中我添加了一行来重置spe_scrollPos变量的值,
spe_scrollPos = 0;
因为这只是一直在计算和恕我直言,不是一个好主意,因为它只会继续消耗内存。
我还通过将超时值更改为15来修改滚动速度,以及您想要的速度。
希望有所帮助!