Prettyphoto在关闭时会跳到页面顶部

时间:2016-08-31 01:54:41

标签: javascript jquery html wordpress

我在使用Qode Bridge主题的Prettyphoto时遇到问题:当它关闭时,页面会跳到顶部。即使全新安装了带有Bridge的Wordpress并且没有安装其他插件,并且还使用最新版本的PrettyPhoto(3.1.6),就会发生这种情况。

此问题仅在Firefox和Internet Explorer中发生。 Chrome,Safari或Opera都没有问题。

关闭PrettyPhoto的按钮是这样的:

<a class="pp_close" href="#">Close</a>

起初我认为这可能是一个问题因为href中的#,所以我尝试了很多解决方案,在这里和网上找到这个问题,但没有任何效果:

  • 替换href =&#34;#&#34;用href =&#34; javascript:;&#34;
  • 替换href =&#34;#&#34;用href =&#34; javascript:void(0);&#34;或者href =&#34; javascript:void();&#34;
  • 添加onclick =&#34; event.preventDefault();&#34;
  • 添加onclick =&#34;返回false;&#34;

所以我开始相信问题不在那个按钮内(因为问题只出在Firefox和IE上),而是深入了解PrettyPhoto的编程。

有谁知道如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:1)

我用以下黑客修复了这个问题...

在prettyphoto js文件中,找到以下html:

<div class="pp_pic_holder">

并将其添加到它前面:

<script type="text/javascript">var scrollPosition = $("body").scrollTop();</script>

然后将以下回调添加到像这样的漂亮照片

$("a[rel^='prettyPhoto']").prettyPhoto({
    callback: function() {$("html, body").scrollTop(scrollPosition);}
});

除了使用内联脚本之外,还有一种更好的方法可以做到这一点,但是当litebox打开时,我无法弄清楚如何在关闭时运行一个函数。所以这是一种黑客的解决方法,但它验证并有效。