点击图片1.全屏阅览2.下载3.关闭 纯纯html css js

要实现图片点击全屏预览的功能,可以使用JavaScript和CSS来实现。以下是一个简单的示例代码:

html

go 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charsett="UTF-8">
    <title>图片点击全屏预览</title>
    <style>
        /* 全屏预览样式 */
        .fullscreen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.8);
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 9999;
        }

        .fullscreen img {
            max-width: 90%;
            max-height: 90%;
        }

        .fullscreen img:hover {
            cursor: pointer;
        }

        /* 关闭按钮样式 */
        .close-btn {
            position: absolute;
            top: 10px;
            right: 10px;
            color: #fff;
            font-size: 24px;
            cursor: pointer;
        }

        /* 下载按钮样式 */
        .download-btn {
            position: absolute;
            bottom: 10px;
            right: 10px;
            color: #fff;
            font-size: 24px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <img src="image.jpg" alt="图片" onclick="openFullscreen(this)">
    
    <script>
        function openFullscreen(img) {
            // 创建全屏预览容器
            var fullscreenDiv = document.createElement("div");
            fullscreenDiv.classList.add("fullscreen");

            // 创建关闭按钮
            var closeBtn = document.createElement("span");
            closeBtn.classList.add("close-btn");
            closeBtn.innerHTML = "&times;";
            closeBtn.onclick = function() {
                closeFullscreen();
            };
            fullscreenDiv.appendChild(closeBtn);

            // 创建下载按钮
            var downloadBtn = document.createElement("span");
            downloadBtn.classList.add("download-btn");
            downloadBtn.innerHTML = "&#x2193;";
            downloadBtn.onclick = function() {
                downloadImage(img.src);
            };
            fullscreenDiv.appendChild(downloadBtn);

            // 创建图片元素
            var fullscreenImg = document.createElement("img");
            fullscreenImg.src = img.src;
            fullscreenDiv.appendChild(fullscreenImg);

            // 添加全屏预览容器到页面
            document.body.appendChild(fullscreenDiv);

            // 禁用滚动
            document.body.style.overflow = "hidden";
        }

        function closeFullscreen() {
            // 移除全屏预览容器
            var fullscreenDiv = document.querySelector(".fullscreen");
            fullscreenDiv.parentNode.removeChild(fullscreenDiv);

            // 启用滚动
            document.body.style.overflow = "auto";
        }

        function downloadImage(src) {
            // 创建一个隐藏的链接并设置下载属性
            var link = document.createElement("a");
            link.href = src;
            link.download = "image.jpg";
            link.style.display = "none";

            // 将链接添加到页面并模拟点击
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);
        }
    </script>
</body>
</html>

在上面的代码中,我们首先定义了一个全屏预览的样式,并在点击图片时调用openFullscreen函数。该函数会创建一个全屏预览容器,并在容器中显示图片。同时,我们还创建了关闭按钮和下载按钮,分别用于关闭全屏预览和下载图片。

点击关闭按钮时,调用closeFullscreen函数,移除全屏预览容器,并启用滚动。

点击下载按钮时,调用downloadImage函数,创建一个隐藏的链接,并设置链接的下载属性,然后模拟点击链接实现图片下载。

请注意,这只是一个简单的示例,实际的图片全屏预览功能可能需要更多的优化和处理,例如支持多张图片预览、滑动切换等。根据具体需求,您可以根据上述示例进行扩展和修改。

相关推荐
掘金安东尼4 小时前
让 JavaScript 更容易「善后」的新能力
前端·javascript·面试
掘金安东尼4 小时前
用 HTMX 为 React Data Grid 加速实时更新
前端·javascript·面试
灵感__idea6 小时前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
袋鼠云数栈UED团队7 小时前
基于 Lexical 实现变量输入编辑器
前端·javascript·架构
AAA阿giao8 小时前
从零构建一个现代登录页:深入解析 Tailwind CSS + Vite + Lucide React 的完整技术栈
前端·css·react.js
亦妤8 小时前
JS执行机制、作用域及作用域链
javascript
SuperEugene9 小时前
表单最佳实践:从 v-model 到自定义表单组件(含校验)
前端·javascript·vue.js
不会敲代码19 小时前
React性能优化:深入理解useMemo和useCallback
前端·javascript·react.js
YukiMori2311 小时前
一个有趣的原型继承实验:为什么“男人也会生孩子”?从对象赋值到构造函数继承的完整推演
前端·javascript
摸鱼的春哥12 小时前
惊!黑客靠AI把墨西哥政府打穿了,海量数据被黑
前端·javascript·后端