You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PhotoSwipe,Rails,Coffee一点都不工作。

以下是一个简单的解决方法,使用PhotoSwipe,Rails和CoffeeScript来创建一个工作的图像库:

首先,确保你的Rails应用中已经安装了PhotoSwipe库。你可以使用yarnnpm来安装它:

yarn add photoswipe

npm install photoswipe

接下来,在你的Rails应用中创建一个新的CoffeeScript文件(例如,photoswipe.js.coffee),并添加以下代码:

# 导入PhotoSwipe的CSS文件
import 'photoswipe/dist/photoswipe.css'
import 'photoswipe/dist/default-skin/default-skin.css'

# 导入PhotoSwipe库
import PhotoSwipe from 'photoswipe'
import PhotoSwipeUI_Default from 'photoswipe/dist/photoswipe-ui-default'

# 在DOM加载完成后运行以下代码
document.addEventListener 'DOMContentLoaded', ->
  # 获取所有需要展示的图像元素
  images = document.querySelectorAll('.photoswipe-image')

  # 创建一个数组来存储图像的信息
  items = []

  # 遍历图像元素并添加它们到数组中
  for image in images
    item =
      src: image.getAttribute('href')
      w: image.getAttribute('data-width')
      h: image.getAttribute('data-height')
      title: image.getAttribute('data-title')

    items.push(item)

  # 创建一个点击事件处理程序,当用户点击图像时,显示PhotoSwipe图像库
  openPhotoSwipe = (index) ->
    gallery = new PhotoSwipe(document.querySelector('.pswp'), PhotoSwipeUI_Default, items, { index: index })
    gallery.init()

  # 将点击事件处理程序绑定到每个图像元素上
  for i in [0...images.length]
    images[i].addEventListener 'click', (i) ->
      (event) ->
        event.preventDefault()
        openPhotoSwipe(i), false

在你的视图文件中,添加一个包含photoswipe-image类的<a>标签,并设置相关的data属性:

<a class="photoswipe-image" href="/path/to/image.jpg" data-width="800" data-height="600" data-title="Image Title">
  <img src="/path/to/thumbnail.jpg" alt="Image">
</a>

最后,在你的布局文件中,添加一个用于显示PhotoSwipe的DOM元素:

<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="pswp__bg"></div>
  <div class="pswp__scroll-wrap">
    <div class="pswp__container">
      <div class="pswp__item"></div>
      <div class="pswp__item"></div>
      <div class="pswp__item"></div>
    </div>
    <div class="pswp__ui pswp__ui--hidden">
      <div class="pswp__top-bar">
        <div class="pswp__counter"></div>
        <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
        <button class="pswp__button pswp__button--share" title="Share"></button>
        <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
        <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
        <div class="pswp__preloader">
          <div class="pswp__preloader__icn">
            <div class="pswp__preloader__cut">
              <div class="pswp__preloader__donut"></div>
            </div>
          </div>
        </div>
      </div>
      <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
        <div class="pswp__share-tooltip"></div>
      </div>
      <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>
      <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>
      <div class="pswp__caption">
        <div class="pswp__caption__center"></div>
      </div>
    </div>
  </div>
</div>

现在,当你点击图像

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

PhotoSwipe,Rails,Coffee一点都不工作。-优选内容

PhotoSwipe,Rails,Coffee一点都不工作。-相关内容

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询