【问题标题】:Fancybox for youtube custom title not comming up properlyyoutube 自定义标题的 Fancybox 未正确显示
【发布时间】:2012-07-09 12:56:40
【问题描述】:

我正在处理包含照片和视频部分的图库部分。

我的照片库一切都很好,而且工作正常。示例:相册网址http://tinyurl.com/bsqd5lp

在照片库中,我使用'titleFromAlt': true, 使用alt 标签传递标题。 alt 标签有自定义标题示例<span>2012-07-02</span><br><span>Department of Tourism</span>

我想为视频厨房做同样的事情,但我无法使用'titleFromAlt': true, 实现这一点。我这样做的方式不好,因为当将鼠标悬停在图像上时,它会显示标题作为 HTML 代码。示例:视频库 URL http://tinyurl.com/bsdq694

我遇到的其他问题是视频的标题居中。我尝试更改 CSS 以使标题左对齐。

.fancybox-title-float {
    position: absolute;
    left: 0;
    bottom: -20px;
    height: 32px;
    float:left;
}

由于某种原因,即使我在显示图像后放置上面的代码,我也无法在一夜之间完成。

帮助这点不胜感激。

更新:

你管视频的代码

$(document).ready(function () {
    $(".youtube").click(function () {
        $.fancybox({
            'padding': 0,
            'autoScale': false,
            'transitionIn': 'none',
            'transitionOut': 'none',
            'title': this.title,
            'titleFromAlt': true,
            //'titlePosition': 'over',
            'width': 680,
            'height': 495,
            'href': this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'type': 'swf',
            'swf': { 'wmode': 'transparent', 'allowfullscreen': 'true' }
        });
        return false;
    });
});

【问题讨论】:

  • 在第一个示例(照片库)中,您将title 属性的内容移动到alt 属性,在此处执行相同操作。
  • 'padding': 0, 'autoScale': false, 'transitionIn': 'none', 'transitionOut': 'none', //'title': this.title, 'titlePosition': 'over', 'titleFromAlt': true, 'width': 680, 'height': 495, 'href': this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'), 'type': 'swf', 'swf': { 'wmode': 'transparent', 'allowfullscreen': 'true' } 如果我这样做,那么标题不会在移动悬停时显示,但它也不会出现在弹出视频中

标签: jquery css fancybox webforms


【解决方案1】:

我们忽略的一件事是,对于您的视频,您通过.click() 使用手动方法,而不是通过.fancybox() 将fancybox 绑定到选择器的常规方法

在这种情况下 - 使用 .click() - titleFromAlt 选项将不起作用,但是您仍然可以使用常规 jQuery 表达式从存储在您的 img 标记中的 alt 属性设置 fancybox 标题。

所以试试这个脚本

$(document).ready(function () {
    $(".youtube").click(function () {
     // first, get the value from the alt attribute
        var newTitle = $(this).find("img").attr("alt"); // NEW
        $.fancybox({
            'padding': 0,
            'autoScale': false,
            'transitionIn': 'none',
            'transitionOut': 'none',
          //'title': this.title, // we will replace this line
            'title' : newTitle,  //<--- this will do the trick
          //'titleFromAlt': true,  // we don't need this anymore
          //'titlePosition': 'over', 
            'width': 680,
            'height': 495,
            'href': this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'type': 'swf',
            'swf': { 'wmode': 'transparent', 'allowfullscreen': 'true' }
        });
        return false;
    });
});

...假设您在img 标记中有alt 属性。

很抱歉造成混乱和所有的cmets来回。

【讨论】:

  • 绝对美...这成功了,感谢您提供清晰的文档。我见过其他类似的例子,但大多数都缺乏适当的例子或清晰的文档。
【解决方案2】:

通过查看您的代码,我可以看到出现在 span 标记中的文本也出现在 title 属性中。试着用文字去掉那个属性,标题文字就不会出现了。

关于第二个问题:
从 CSS 类 .fancybox-title-float 中删除属性“position: absolute;”,并从 id #fancybox-title-float-left 中删除“padding”属性。应用这些更改后,您的文本将向左对齐。

【讨论】:

  • @ukai,在您的指导下,我能够解决第二部分。但是第一部分仍然像我已经从图像标签中删除了alt,但它仍然在鼠标悬停时显示标题并从弹出窗口中删除标题。我希望这是你想说的。我想在鼠标悬停时隐藏标题并仅在弹出窗口中显示
  • @KnowledgeSeeker :您必须删除title 属性,而不是alt 属性(并将title 的内容移动到alt)......你已经用你的其他帖子/问题上的照片。见stackoverflow.com/a/11390942/1055987
  • @JFK,我按照您的建议采用了这种方法,我没有得到任何东西,但这也从之前显示在视频下方的弹出视频中删除了标题。我不确定我需要对使用 youtube 的 jQuery 代码部分进行哪些更改。我也有更新代码的问题
  • @KnowledgeSeeker 您不需要在 jQuery 上进行任何更改,只需在 &lt;a class="youtube" href="{to youtube}"&gt;&lt;img alt="{the fancybox title here}" src="{thumb}" /&gt;&lt;/a&gt; 之类的 html 中更改...您缺少 img 标签上的 alt 属性。跨度>
  • @JKF,这正是我之前所做的,但由于某种原因它仍然无法正常工作。无论如何,我感谢大家的回复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-18
  • 2011-12-30
  • 2016-11-21
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
  • 2019-07-15
相关资源
最近更新 更多