zoukankan      html  css  js  c++  java
  • PhotoSwipe中文API(二)

    配置

    选项是在键 - 值对添加作为参数传递给PhotoSwipe构造,例如通过:

     1 var options = {
     2     index: 3,
     3     escKey: false,
     4 
     5     // ui option
     6     timeToIdle: 4000
     7 };
     8 var gallery = new PhotoSwipe( someElement, PhotoSwipeUI_Default, someItems, options);
     9 gallery.init();
    10 
    11 // Note that options object is cloned during the initialization.
    12 // But you can access it via `gallery.options`.
    13 // For example, to dynamically change `escKey`:
    14 gallery.options.escKey = false;
    15 
    16 // `options.escKey = false` will not work

    核心

    index integer 0

    开始放映指数。 0是第一滑动。必须是整数,而不是字符串。

    getThumbBoundsFn function undefined

    功能应该与坐标从初始变焦的动画将启动(或缩小出动画将结束)返回一个对象。

    对象应包含三个属性:X(X位置,相对于文档),Y(Y位置,相对于文档),W(元素的宽度)。高度会自动根据大的图像大小来计算。例如,如果您返回{X:0,Y:0,W:50}缩放动画将在你的页面的左上角开始。

    函数有一个参数 - 即打开或关闭项目的索引。

    在非模态模式,相对于视口模板的位置应该从x和y中减去。看常见问题以获取更多信息。

    例如,计算缩略图的位置:

     1 getThumbBoundsFn: function(index) {
     2 
     3     // find thumbnail element
     4     var thumbnail = document.querySelectorAll('.my-gallery-thumbnails')[index];
     5 
     6     // get window scroll Y
     7     var pageYScroll = window.pageYOffset || document.documentElement.scrollTop; 
     8     // optionally get horizontal scroll
     9 
    10     // get position of element relative to viewport
    11     var rect = thumbnail.getBoundingClientRect(); 
    12 
    13     // w = width
    14     return {x:rect.left, y:rect.top + pageYScroll, w:rect.width};
    15 
    16 
    17     // Good guide on how to get element coordinates:
    18     // http://javascript.info/tutorial/coordinates
    19 }

    如果你的小缩略图的尺寸不匹配大的图像尺寸,考虑启用变焦+淡出过渡。您可以通过添加选项showHideOpacity做到这一点:真(尝试将其添加到上面CodePen来测试它的外观)。或通过添加hideAnimationDuration完全禁用过渡:0,showAnimationDuration:0。这个常见问题中的更多信息。

    如果你想利用动画时不透明度为“隐藏”小缩略图:0,不可见性:隐藏或显示:无。不要强迫油漆和布局在动画的开头,以避免滞后。

    showHideOpacity boolean false

    如果设置为false:背景透明度和图像规模将动画(图像透明度始终为1)。如果设置为true:根PhotoSwipe元素的不透明性和图像规模将动画。
    为了让刚转型的不透明度(未经调整),不要定义getThumbBoundsFn选项。

    showAnimationDuration integer 333

    以毫秒为单位的初始放大的过渡时间。设置为0来禁用。除了这个JS选项,你也需要改变PhotoSwipe CSS文件转换时间:

    1 .pswp--animate_opacity,
    2 .pswp__bg,
    3 .pswp__caption,
    4 .pswp__top-bar,
    5 .pswp--has_mouse .pswp__button--arrow--left,
    6 .pswp--has_mouse .pswp__button--arrow--right{
    7     -webkit-transition: opacity 333ms cubic-bezier(.4,0,.22,1);
    8     transition: opacity 333ms cubic-bezier(.4,0,.22,1);
    9 }

    如果你使用的无礼,你只需要更改主settings.scss过渡时间变量。

    hideAnimationDuration integer 333

    同样作为一个选项,只是关闭(缩放出)转型。 PhotoSwipe被打开后PSWP - 公开课将被添加到根元素,你可以用它在CSS中使用不同的过渡时间。

    bgOpacity number 1

    背景(.pswp_bg)透明度。应该是从0到1,即0.7。此样式是通过JS限定,而不是通过CSS,因为此值用于一些基于姿势的过渡。

    spacing number 0.12

    幻灯片之间的间距比。例如,0.12将呈现为滑动视口宽度的12%(四舍五入)。

    allowPanToNext boolean true

    允许刷卡导航到下一个/上一个项目时,当前项目被放大。选项始终是在没有硬件支持触控设备假的。

    maxSpreadZoom number 2

    进行扩展(变焦)手势时,最大缩放级别。 2意味着图像可以从原始尺寸被放大2倍。尽量避免在这里巨大的价值,因为过大的图像可以在移动导致内存问题(特别是在iOS)。

    getDoubleTapZoom function

    函数将返回缩放级别的图像将双击手势之后进行缩放其中,或图像本身,当用户点击缩放图标,或者鼠标点击。如果返回1的图像将被放大到原来的大小。

    Default value:

     1 getDoubleTapZoom: function(isMouseClick, item) {
     2 
     3     // isMouseClick          - true if mouse, false if double-tap
     4     // item                  - slide object that is zoomed, usually current
     5     // item.initialZoomLevel - initial scale ratio of image
     6     //                         e.g. if viewport is 700px and image is 1400px,
     7     //                              initialZoomLevel will be 0.5
     8 
     9     if(isMouseClick) {
    10 
    11         // is mouse click on image or zoom icon
    12 
    13         // zoom to original
    14         return 1;
    15 
    16         // e.g. for 1400px image:
    17         // 0.5 - zooms to 700px
    18         // 2   - zooms to 2800px
    19 
    20     } else {
    21 
    22         // is double-tap
    23 
    24         // zoom to original if initial zoom is less than 0.7x,
    25         // otherwise to 1.5x, to make sure that double-tap gesture always zooms image
    26         return item.initialZoomLevel < 0.7 ? 1 : 1.5;
    27     }
    28 }

    函数被调用每一个放大的动画启动的时间。可以随意根据自己的尺寸和屏幕的DPI不同的图像返回不同的值。

    loop boolean true

    循环使用滑动手势时,幻灯片。如果设置为true,你就可以从上轻扫到第一张图像。选项始终是假的时,有不到3张幻灯片。

    此选项没有关系箭头导航。箭头循环永久开启。您可以修改通过自定义UI此行为。

    pinchToClose boolean true

    捏关闭画廊的姿态。画廊的背景将逐渐淡出作为用户缩小。当手势完成后,画廊将关闭。

    closeOnScroll boolean true

    在页面滚动关闭画廊。选项可只是没有硬件支持触控设备。

    closeOnVerticalDrag boolean true

    垂直拖动关闭画廊时,当影像未缩放。始终为假时使用鼠标。

    mouseUsed boolean false

    选项允许如果使用与否鼠标就预定义。有些PhotoSwipe功能依赖于它,例如默认的UI左/右箭头会显示使用鼠标之后。如果设置为false,PhotoSwipe将开始检测时,鼠标的使用本身,当鼠标被发现mouseUsed事件触发。

    escKey boolean true

    键盘ESC键关闭PhotoSwipe。选项可以更改动态(yourPhotoSwipeInstance.options.escKey= FALSE)。

    arrowKeys boolean true

    键盘向左或向右箭头键导航。选项可以动态改变(yourPhotoSwipeInstance.options.arrowKeys=假)。

    history boolean true

    如果设置为false禁用历史模块(后退按钮关闭画廊,独特的URL为每张幻灯片)。您也可以刚刚从构建排除history.js模块。

    galleryUID integer 1

    画廊的唯一ID。由历史形成的模块URL时使用。例如,UID1画廊的第二张照片将有网址:http://example.com/#&gid=1&pid=2。

    galleryPIDs boolean false

    启用对于正在形成URL时使用的每个幻灯片对象自定义标识。如果选项设置为true,幻灯片对象必须具有PID(图片标识符)属性,可以是一个字符串或一个整数。 例如:

     1 var slides = [
     2     {
     3         src: 'path/to/1.jpg',
     4         w:500,
     5         h:400,
     6         pid: 'image-one'
     7     },
     8     {
     9         src: 'path/to/2.jpg',
    10         w:300,
    11         h:700,
    12         pid: 'image-two'
    13     },
    14 
    15     ... 
    16 ];

    ......第二张幻灯片将URL http://example.com/#&gid=1&pid=image-two。

    了解更多关于如何实现在FAQ部分定制的PID。

    errorMsg string

    未加载图像时的错误消息。 %URL%将图像的URL来代替。

    Default value:

    <div class="pswp__error-msg"><a href="%url%" target="_blank">The image</a> could not be loaded.</div>

    preload array [1,1]

    基于运动方向附近的幻灯片延迟加载。应该是两个整数数组,第一个 - 当前图像之前预加载的项目数,第二个 - 当前图像之后。 例如。如果你把它设置为[1,3],它会之前,在当前负载1的图像,目前后3图像。值不能小于1。

    mainClass string undefined

    字符串将被添加到根PhotoSwipe(.pswp)的元素类的名称。可以包含由空格分隔的多个类。

    getNumItemsFn function

    功能应该在画廊返回的项目总数。默认情况下它返回幻灯片数组的长度。不要把很复杂的代码在这里,函数经常执行。

    focus boolean true

    之后它的开放将焦点设置PhotoSwipe元素上。

    isClickableElement function

    Default value:

    1 isClickableElement: function(el) {
    2     return el.tagName === 'A';
    3 }

    函数应该检查元素(EL)是可以点击的。如果是 - PhotoSwipe不会叫的preventDefault和点击事件会通过。功能应该是轻是可能的,因为它是在拖动开始和拖动发布执行多次。

    modal boolean true

    控制PhotoSwipe是否应该扩大到占据整个视口。如果为假,则PhotoSwipe元件将模板的定位的父的大小。看看常见问题以获取更多信息。

    Default UI Options

    对于PhotoSwipe用户界面默认(DIST/ UI / photoswipe-UI-default.js)选项添加同样的方式和同样的目标为核心的选项。

      1 // Size of top & bottom bars in pixels,
      2 // "bottom" parameter can be 'auto' (will calculate height of caption)
      3 // option applies only when mouse is used, 
      4 // or width of screen is more than 1200px
      5 // 
      6 // (Also refer to `parseVerticalMargin` event)
      7 barsSize: {top:44, bottom:'auto'}, 
      8 
      9 // Adds class pswp__ui--idle to pswp__ui element when mouse isn't moving for 4000ms
     10 timeToIdle: 4000,
     11 
     12 // Same as above, but this timer applies when mouse leaves the window
     13 timeToIdleOutside: 1000,
     14 
     15 // Delay until loading indicator is displayed
     16 loadingIndicatorDelay: 1000,
     17 
     18 // Function builds caption markup
     19 addCaptionHTMLFn: function(item, captionEl, isFake) {
     20     // item      - slide object
     21     // captionEl - caption DOM element
     22     // isFake    - true when content is added to fake caption container
     23     //             (used to get size of next or previous caption)
     24 
     25     if(!item.title) {
     26         captionEl.children[0].innerHTML = '';
     27         return false;
     28     }
     29     captionEl.children[0].innerHTML = item.title;
     30     return true;
     31 },
     32 
     33 // Buttons/elements
     34 closeEl:true,
     35 captionEl: true,
     36 fullscreenEl: true,
     37 zoomEl: true,
     38 shareEl: true,
     39 counterEl: true,
     40 arrowEl: true,
     41 preloaderEl: true,
     42 
     43 // Tap on sliding area should close gallery
     44 tapToClose: false,
     45 
     46 // Tap should toggle visibility of controls
     47 tapToToggleControls: true,
     48 
     49 // Mouse click on image should close the gallery,
     50 // only when image is smaller than size of the viewport
     51 clickToCloseNonZoomable: true,
     52 
     53 // Element classes click on which should close the PhotoSwipe.
     54 // In HTML markup, class should always start with "pswp__", e.g.: "pswp__item", "pswp__caption".
     55 // 
     56 // "pswp__ui--over-close" class will be added to root element of UI when mouse is over one of these elements
     57 // By default it's used to highlight the close button.
     58 closeElClasses: ['item', 'caption', 'zoom-wrap', 'ui', 'top-bar'], 
     59 
     60 // Separator for "1 of X" counter
     61 indexIndicatorSep: ' / ',
     62 
     63 
     64 
     65 // Share buttons
     66 // 
     67 // Available variables for URL:
     68 // {{url}}             - url to current page
     69 // {{text}}            - title
     70 // {{image_url}}       - encoded image url
     71 // {{raw_image_url}}   - raw image url
     72 shareButtons: [
     73     {id:'facebook', label:'Share on Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},
     74     {id:'twitter', label:'Tweet', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},
     75     {id:'pinterest', label:'Pin it', url:'http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}'},
     76     {id:'download', label:'Download image', url:'{{raw_image_url}}', download:true}
     77 ],
     78 
     79 
     80 // Next 3 functions return data for share links
     81 // 
     82 // functions are triggered after click on button that opens share modal,
     83 // which means that data should be about current (active) slide
     84 getImageURLForShare: function( shareButtonData ) {
     85     // `shareButtonData` - object from shareButtons array
     86     // 
     87     // `pswp` is the gallery instance object,
     88     // you should define it by yourself
     89     // 
     90     return pswp.currItem.src || '';
     91 },
     92 getPageURLForShare: function( shareButtonData ) {
     93     return window.location.href;
     94 },
     95 getTextForShare: function( shareButtonData ) {
     96     return pswp.currItem.title || '';
     97 },
     98 
     99 // Parse output of share links
    100 parseShareButtonOut: function(shareButtonData, shareButtonOut) {
    101     // `shareButtonData` - object from shareButtons array
    102     // `shareButtonOut` - raw string of share link element
    103     return shareButtonOut;
    104 }
  • 相关阅读:
    能飞英语学习软件学习实践
    英语学习方式总结与实践
    Hello World
    centos 7.6中搭建samba共享服务
    PHP漏洞全解(一)PHP网站的安全性问题
    MySQL查询语句练习题
    在PHP中使用CURL实现GET和POST请求的方法
    js数组的操作大全
    php四种基础算法:冒泡,选择,插入和快速排序法
    Linux查看端口使用状态及启动
  • 原文地址:https://www.cnblogs.com/jiangxiaobo/p/5695930.html
Copyright © 2011-2022 走看看