【问题标题】:How to remove <br> from prettyPhoto hover?如何从 prettyPhoto 悬停中删除 <br>?
【发布时间】:2016-03-23 20:40:01
【问题描述】:

在我的网站上,我有几个漂亮的照片画廊,我注意到当鼠标悬停在照片上时,所有这些画廊都会显示照片的“标题”标签。这包括一些&lt;br&gt; 标签,然后显示在悬停中,看起来很糟糕。我已经搜索并尝试了对 jquery 的一系列更改,但找不到修复程序。有谁知道如何从悬停中删除&lt;br&gt;

html的一个例子是:

<article class="span3 box3">
  <div class="thumb-pad4 maxheight">
    <div class="thumbnail">
      <figure><a href="img/p1.jpg" alt="job | Person 1" rel="prettyPhoto[gallery3]" title="
<br>
<br>
<br>
Person1 joined __ in 2015 as a ___.  In this role, ...
<br>
<br>
Person 1 graduated from ____ and wishes he were better at code> 
<img src="img/p1.jpg" alt="job | p1">
</a>
</figure>
  <div class="caption">
    <a href="#">Person 1<br>
Job Function</a>                                    
  </div>
 </div>
</div>
</article>

悬停时出现的是:

 <br>
 <br>
 <br>
Person1 joined __ in 2015 as a ___.  In this role, ...
<br>
<br>
Person 1 graduated from ____ and wishes he were better at code

【问题讨论】:

  • 你能把你的问题截图吗?
  • 或者,更好的是,提供一些复制问题的代码?
  • 你需要提供一些代码,我们不可能猜到哪里出了问题。我知道我们大多数人都希望我们是具有读心能力的变种人,但不幸的是我们不是查尔斯泽维尔:/

标签: javascript jquery html css prettyphoto


【解决方案1】:

当您单击或将鼠标悬停在照片上时,PrettyPhoto 使用属性title 为照片添加标题。

您需要在页面中添加一些 CSS,以便在标题以“点击模式”显示时在标题上方和下方添加间距。从 prettyPhoto 的工作原理来看,标题文本放在 divclass="pp_description" 中。

因此,从您的 HTML 中删除所有 &lt;br&gt; 标记,并添加 CSS 规则

.pp_description {
    margin-top: 3em;
    margin-bottom: 2em;
    /* line-height: 3em; if you want spacing between each line of text in the caption */
}

【讨论】:

  • 您可以将em 值更改为您想要的任何值。每个1em 代表“标准”文本行的高度。你也可以使用px
  • 作为一般规则,始终使用 CSS 来添加间距,而不是使用 &lt;br&gt; 标签。
  • 这很好用并且是一个快速修复 - 感谢您的帮助 @4castle 我继承了这个网站并正在尝试修复/更新。谢谢!
【解决方案2】:

尝试将str.replace() 与正则表达式一起使用(没有它,您只会替换第一个匹配项。您需要一个“贪婪的正则表达式”)

RegEx

例如:

<script>
    $('.my-class')
        .on('mouseenter', function() {
            var originalTitle = $(this).attr('title');

            $('.my-class').attr('data-original-title', originalTitle);
            $('.my-class').attr('title', title.replace(/<br>/g,''));
        })
        .on('mouseleave', function() {
            var originalTitle = $(this).attr('data-original-title');

            $('.my-class').attr('title', originalTitle);
        });
</script>

【讨论】:

  • 这可以解决问题,但在我们了解更多信息之前可能没有必要。最好的解决方案可能只是手动从 html 源代码中删除 &lt;br&gt; 标签。
  • 当我这样做时,虽然我会在单击并打开图像后失去画廊中所需的间距...我尝试使用

    但显然结果相同
  • @CodinglyClueless - 检查我的编辑
  • @zeropublix 感谢您的帮助和上述信息 - 绝对值得阅读和学习。我将使用下面的 css,尽管它是一个快速修复并且我已经知道该怎么做的事情。感谢您的时间和帮助!
猜你喜欢
  • 2012-11-05
  • 2013-05-17
  • 1970-01-01
  • 2013-10-03
  • 2023-03-06
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多