fancybox 2:将缩略图放在父 div 中

2024-02-10

好的,我最近添加了 'fancyBox http://www.fancyapps.com/' 到我的网站,它很棒。不过,我想将缩略图(其功能是缩略图助手的一部分,因此位于单独的 .js 文件中)放在图库图像下方。

我首先尝试更改包含图像的 div(我假设是缩略图),但是这两个是同级 div,除了 body 之外没有父 div。然后,我开始尝试找出实际上是将元素“打印”到页面上的内容,并且我发现了“换行”的一大堆用途。

例如:

tpl: {
            wrap     : '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
            image    : '<img class="fancybox-image" src="{href}" alt="" />',
            iframe   : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '></iframe>',
            error    : '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
            closeBtn : '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
            next     : '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
            prev     : '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'
        },

首先;什么是tpl:{},?那是什么?它是一个数组吗?一个函数?我找不到任何关于符合该语法的文档,这正好跨越了我的范围。

其次,我假设这不是实际 html 被“打印”的行,只是定义应该打印的内容的区域,并且在 html 被打印时调用其中的值。actually打印。 ...? 那么这是否意味着我可以打印这个(从缩略图 js 文件):

this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position).appendTo('body');
        this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);

在打印图像的实际 html 的行上?请记住它们是两个单独文件的一部分。

基本上我需要的只是为图库和缩略图提供一个父级 div。这样我就可以根据图库的大小来定位缩略图。我也在使用 drupal,所以几乎任何 html 文档的硬编码都已经过时了,除非它显然是一个模板。

我试图在我的连体衣上解决这个问题,但由于我缺乏经验,而且主文件有 2020 行长,我不太可能成功。相反,我会发现自己不断地撞到我不知道的墙壁,然后继续失去理智。


没有太多关于的文档tplAPI 选项,所以我将与您分享我的发现。


1). whats the tpl : {},? : tpl代表template,它是数据条目的集合(json 名称/值对格式),返回 fancybox 函数内的元数据。

obj : {
    property-name: value // Boolean (true/false), integer (50, 260.3) or string ("string" ... note the quotes)
}

您可以使用tpl如果您想添加不同的 css 样式,例如:将您自己的选择器添加到 fancybox 中:

$(".fancybox").fancybox({
    tpl: {
        wrap: '<div class="fancybox-wrap mywrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>'
    },
});

Notice我添加了班级mywrap所以你可以使用它的选择器添加自定义 css 样式(或通过 jQuery 操作它),例如:

/* add a 5px red border around fancybox */
.mywrap {
    border: solid 5px #880000 !important;
}

See JSFIDDLE http://jsfiddle.net/qvFB7/


2). Basically all I need is to have a parent div for both the gallery and the thumbnails.这需要从不同的角度来看待。

当您打开 fancybox 时,会添加两个主要容器(通过选择器):

2.a). .fancybox-overlay

  • 它是页面顶部的半透明覆盖层AND在花式盒子后面
  • it's always附加到body

2.b). .fancybox-wrap

  • 它是 fancybox 框及其所有子项(导航和关闭按钮、内容等)
  • 它被附加到.fancybox-overlay IF the locked选项设置为true(默认值)如:

    $(".fancybox").fancybox({
        helpers : {
            overlay: {
                locked: true
            }
        }
    });
    
  • OR它被附加到body IF the locked选项设置为false :

    $(".fancybox").fancybox({
        helpers : {
            overlay: {
                locked: false
            }
        }
    });
    

    NOTE: .fancybox-wrap将是以下的兄弟姐妹.fancybox-overlay在这种情况下。

  • 使用该选项时它会附加到任何指定的自定义容器parent AND the locked选项设置为false

    所以有这个html:

    <body>
        <div id="mainWrapper"></div>
    </body>
    

    ... and

    $(".fancybox").fancybox({
        parent: "#mainWrapper", // parent div
        helpers : {
            overlay: {
                locked: false
            }
        }
    });
    

    ....fancybox-wrap将作为子元素附加#mainWrapper所以你可以应用你自己的自定义 css 样式,例如:

    #mainWrapper .fancybox-wrap {
        left: 0 !important;
    }
    

    See JSFIDDLE http://jsfiddle.net/3w3az/


3)。当您使用缩略图助手(并链接正确的 js 和 css 文件)时, fancybox 会添加另一个容器:

3.a). #fancybox-thumbs

  • 它总是附加到body
  • 它是 的兄弟姐妹.fancybox-overlay element

如果您需要家长div为了#fancybox-thumbs容器,你可以包裹#fancybox-thumbs及其新的自定义父级div即时使用 fancybox 回调,例如:

$(".fancybox").fancybox({
    helpers: {
        thumbs: {}
    },
    afterShow: function () {
        if ($(".mythumbswrap").length == 0) {
            setTimeout(function () {
                $("body").find("#fancybox-thumbs").css({
                    // custom css (optional)
                    position: "relative"
                }).wrap("<div class='mythumbswrap' />");
            }, 100);
        }
    },
    afterClose: function () {
        $(".mythumbswrap").remove();
    }
});

Notice我们首先检查是否.mythumbswrap已经存在,如果我正在浏览画廊,这可能是真的。如果没有,我们会添加它BUT我们需要等待#fancybox-thumbs附于body因为直到 fancybox 完全添加到 DOM 中才会发生。

We used setTimeout设置延迟。

另请注意,我们删除了父容器.mythumbswrap关闭 fancybox 后,否则它将保留在 DOM 中并且不会作为包装器添加#fancybox-thumbs下次我们打开 fancybox 时。

从现在开始.mythumbswrap is the parent的元素#fancybox-thumbs我们可以应用任何自定义样式,例如:

.mythumbswrap {
  background: none repeat scroll 0 0 #FFFFFF !important;
  bottom: 0;
  display: block;
  height: 60px;
  width: 100%;
  z-index: 10000;
  position: fixed;
  bottom: 0;
}

See JSFIDDLE http://jsfiddle.net/7c554/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fancybox 2:将缩略图放在父 div 中 的相关文章

  • 调整文本区域大小

    我需要使用文本区域来显示一些文本 问题是 如果我放置 4 5 行文本 就会出现滚动条 如何使用 CSS HTML 使文本区域与其内容一样大 没有滚动条 文本区域不需要动态更改其大小 我仅使用它来显示文本 我也可以使用禁用的文本区域 我希望文
  • Textmate“注释”命令对于 css 代码无法正常工作

    当我在 TextMate 中切换 CSS 源代码的注释时遇到一些问题 Using the shortcut CMD I activate the Comment Line Selection command from the source
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • 用隐藏单元格补充 colspanned 表格有什么不好吗?

    我一直在表格上开发一些排序和选择功能 我发现在具有跨单元格的表格中定位非常困难 我只是添加了跨区单元格并将其隐藏 它看起来不错 它与我的 js 一起工作 非常适合索引 但我想知道这是否是合法的方法 stuffing display none
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • 动画进度元素值

    我有一个progress元素 该元素如下所示 div class container div div div
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 如何更改 Bootstrap 3 div 列顺序

    正在做我的第一个响应式设计 在 Bootstrap 3 中可能会出现类似的情况 在 lg 上更改此设置 a b c sm 上的这个 a c b 您可以使用两个 div 一个用于第一类型的布置 另一个用于第二类型的布置 第一个仅在 lg 中显
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • HTML2canvas 和 Canvas2image,下载的屏幕截图不显示我的 HTML 图像

    我一直在开发一个 HTML 页面 我想将其转换为图像 我一直在使用 html2canvas 和 canvas2image 脚本并采用此代码http jsfiddle net 8ypxW 3 http jsfiddle net 8ypxW 3
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • IE 中的 jQuery .width(val) 错误 - 无效参数

    通过ajax加载内部div book table 后 我想调整正文的宽度以适应更大的内容 var new width parseInt book table css width 407 body width new width 在 FF 和
  • 如何将送货地址复制到帐单地址

    我想知道是否可以将送货地址复制到帐单地址 当用户单击与送货地址相同的复选框时 送货地址值将被复制到账单输入字段 我完成了大部分部分 但我不确定如何将选择菜单 状态 值复制到帐单地址 我真的很感谢任何帮助 My code document r
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML
  • 为范围旋钮 ionic-range 添加边框颜色

    我正在使用离子范围添加范围滑块 并想向范围旋钮添加边框 由于它的 ionic4 和范围旋钮是 Shadow dom 的一部分 我无法使用范围旋钮的 border 属性直接更改边框 我已附上我想要实现的图像 范围旋钮周围有白色边框 现有属性只
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐