You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel开发网页如何实现点击对应div元素全屏展示功能

功能实现方案:Laravel截图卡片点击全屏

现有基础信息

  • 当前页面展示效果:当前展示效果
  • 需求:点击对应卡片div时,该div进入全屏展示状态,目标效果:目标全屏效果

现有页面Blade代码

<div class="container">
    <div class="boxmk">
        @foreach($kk as $jp)
        <div class="screenshots-card">
           <div class="ScreenShots-root">
              <div class="screenshot-card">
                 <div class="screenshot-card-header">
                    
                    <div class="screenshot-card-header-name">{{$jp->appname}}</div>
                 </div>
                 <div class="screenshot-card-image"><img alt="User Screenshot" class="screenshot-card-thumbnail-image" src="{{ URL::to('screenshots/'.$jp->filename) }}"></div>
                 <div class="screenshot-card-footer">
                    <div class="screenshot-card-footer-information-bar">
                       
                       <div class="screenshot-card-footer-information-bar-timer">
                          <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
                             <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"></path>
                          </svg>
                          <span class="screenshot-card-footer-information-bar-timer-time">{{$jp->time}}</span>
                       </div>
                    </div>
                 </div>
              </div>
           </div>
        </div>
        @endforeach            
     </div>

现有CSS引用代码

<link rel="stylesheet" href="https://app.workfolio.io/static/css/main.05c50221.chunk.css">
<link href="https://app.workfolio.io/static/css/2.be6d2076.chunk.css" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">

实现步骤

1. 修改Blade模板,给卡片添加点击事件

找到class="screenshot-card"的div,添加点击触发函数:

<!-- 修改前 -->
<div class="screenshot-card">
<!-- 修改后 -->
<div class="screenshot-card" onclick="toggleFullscreen(this)">

2. 页面添加全屏切换JS代码

在页面底部</body>标签之前插入如下JS代码,兼容主流浏览器:

function toggleFullscreen(element) {
    // 非全屏状态下进入全屏
    if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
        if (element.requestFullscreen) {
            element.requestFullscreen();
        } else if (element.msRequestFullscreen) {
            element.msRequestFullscreen();
        } else if (element.mozRequestFullScreen) {
            element.mozRequestFullScreen();
        } else if (element.webkitRequestFullscreen) {
            element.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
        }
        element.classList.add('fullscreen-card');
    } else {
        // 退出全屏
        if (document.exitFullscreen) {
            document.exitFullscreen();
        } else if (document.msExitFullscreen) {
            document.msExitFullscreen();
        } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        } else if (document.webkitExitFullscreen) {
            document.webkitExitFullscreen();
        }
        element.classList.remove('fullscreen-card');
    }
}

// 监听ESC全屏退出事件,避免样式类残留
document.addEventListener('fullscreenchange', function() {
    if (!document.fullscreenElement) {
        document.querySelectorAll('.screenshot-card.fullscreen-card').forEach(el => {
            el.classList.remove('fullscreen-card');
        });
    }
});

3. 添加全屏状态自定义样式(可选,优化展示效果)

在页面的<style>标签或者自定义CSS文件中添加如下样式:

.screenshot-card.fullscreen-card {
    width: 100vw;
    height: 100vh;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: #fff;
}
.screenshot-card.fullscreen-card .screenshot-card-image {
    flex: 1;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.screenshot-card.fullscreen-card .screenshot-card-thumbnail-image {
    max-height: 85vh;
    max-width: 90vw;
    object-fit: contain;
}

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:15:05