图片点击放大轮播

效果图

html代码:

<ul class="dp-file" id="galley" >
    <c:forEach var="file" varStatus="status" items="${bean.homeWorkFiles}">
	<c:if test="${file.type==0}">
	     <a class="lightbox" href="${file.url}" style="margin-top: 5px;padding: 0;list-style: none;text-align: left;width: 80px;height: 80px;float: left;margin-right: 10px;">
		  <img src="${file.url}"  style="width: 80px;height: 80px;border-radius: 10px;">
	     </a>
	</c:if>
   </c:forEach>
   <script>
     baguetteBox.run('.dp-file');
   </script>
</ul>

引用:

<link rel="stylesheet" href="${ctx}/static/vendor/lightbox/css/baguetteBox.min.css" />
<script src="${ctx}/static/vendor/lightbox/js/baguetteBox.min.js"></script>

资源下载地址:https://download.csdn.net/download/qq_31935559/10520133

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现轮播图卡片中间放大的效果,可以按照以下步骤操作: 1. 首先,在 Vue 组件中创建一个轮播图组件,然后在该组件中通过 `v-for` 指令循环渲染每个卡片,并为每个卡片添加一个点击事件。 2. 在点击事件中,使用 `transform` 和 `transition` 属性,设置当前点击的卡片的大小和位置,以及其他卡片的大小和位置。 3. 最后,通过 CSS 样式设置卡片的布局和样式,以及其他动画效果。 下面是一个简单的示例代码,供您参考: ```vue <template> <div class="carousel-container"> <div class="carousel-cards"> <div v-for="(card, index) in cards" :key="index" @click="zoomCard(index)"> <img :src="card.image" alt="card-image"> <h3>{{ card.title }}</h3> <p>{{ card.description }}</p> </div> </div> </div> </template> <script> export default { data() { return { cards: [ { image: 'image1.jpg', title: 'Card 1', description: 'Description for card 1' }, { image: 'image2.jpg', title: 'Card 2', description: 'Description for card 2' }, { image: 'image3.jpg', title: 'Card 3', description: 'Description for card 3' }, { image: 'image4.jpg', title: 'Card 4', description: 'Description for card 4' } ], zoomedIndex: null }; }, methods: { zoomCard(index) { this.zoomedIndex = index; }, closeZoom() { this.zoomedIndex = null; } } }; </script> <style> .carousel-container { position: relative; width: 100%; height: 400px; overflow: hidden; } .carousel-cards { display: flex; justify-content: space-between; width: 100%; height: 100%; position: relative; z-index: 1; transition: transform 0.5s; } .carousel-cards div { width: 200px; height: 300px; padding: 20px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); background-color: #fff; position: relative; z-index: 1; cursor: pointer; transition: transform 0.5s, box-shadow 0.5s; } .carousel-cards div:hover { box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); } .carousel-cards div img { width: 100%; height: 150px; object-fit: cover; margin-bottom: 10px; } .carousel-cards div h3 { font-size: 16px; margin-bottom: 5px; } .carousel-cards div p { font-size: 14px; color: #666; margin-bottom: 0; } .carousel-cards div.zoomed { width: 400px; height: 600px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2; } .carousel-cards div.zoomed img { height: 300px; object-fit: cover; margin-bottom: 20px; } .carousel-cards div.zoomed h3 { font-size: 24px; margin-bottom: 10px; } .carousel-cards div.zoomed p { font-size: 18px; color: #333; margin-bottom: 20px; } </style> ``` 在上面的代码中,我们使用 `zoomedIndex` 变量来记录当前放大卡片的索引。当用户点击某个卡片时,我们将该卡片的索引赋值给 `zoomedIndex` 变量,并为该卡片添加 `zoomed` 类。然后,我们使用 CSS 样式将该卡片放大并居中显示。同时,我们使用 `transform` 属性将其他卡片缩小并移动到两侧。当用户点击放大的卡片时,我们将 `zoomedIndex` 变量设置为 `null`,并移除所有卡片的 `zoomed` 类,这样就可以恢复原来的布局和样式了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值