利用第三方库实现网页窗效果

 项目初衷

       我在去做一个项目时,遇到想到一个不错的idea,由于网站需要长期生存,站长迫不得已要当“网络乞丐”,让网站维持下来,想到了进去网站时设置一个弹窗,寻求看官打赏。话不多说,这里使用的是bootstrap.min.cssbootstrap.min.jsjquery.min.js

       可以支持一下作者制作的一个轻量级免费图片压缩网站https://qingtuyasuozhan.cn/一切费用用于网站的生存。

上效果图:


效果图 


 我们简单地去分析:

1.HTML结构:

<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="popupModalLabel" aria-hidden="true" id="popupModal">
    <!-- Modal content goes here -->
</div>

这部分定义了一个Bootstrap的模态框容器,id="popupModal"用于在JS中引用。


2.CSS样式:

.modal-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

这些样式确保模态框内的内容居中显示。


3.图像和文本:

<img id="popupImage" class="img-fluid" src="1.jpg" alt="图片">
<p id="popupText" class="mt-3">站长开发"轻图压缩站"不易,为了维持网站的正常运行,各位看官可以自愿打赏打赏(✿◠‿◠)</p>

这里定义了模态框内的主要内容:一张图片和一段请求打赏的文本。


4.倒计时和按钮:

<div id="countdown" class="mt-3"></div>
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>

 倒计时区域和“取消”按钮,用于控制模态框的关闭。


6.JavaScript功能:

$(document).ready(function() {
    // JavaScript logic goes here
});
使用jQuery来控制模态框的显示、倒计时和按钮事件。

 模态框显示:

$('#popupModal').modal('show');
这行代码在页面加载完毕后立即显示模态框。

倒计时功能:

var countdown = 10;
var countdownElement = $('#countdown');
var interval = setInterval(function() {
    countdownElement.text(countdown);
    countdown--;
    if (countdown === 0) {
        clearInterval(interval);
        $('#popupModal').modal('hide');
    }
}, 1300);
 这部分代码实现了一个倒计时机制,每1.3秒更新一次倒计时显示,直到倒计时结束,模态框自动关闭。

按钮事件:

$('.modal-footer .btn-secondary').on('click', function() {
    clearInterval(interval);
    $('#popupModal').modal('hide');
});
 这个事件处理程序确保当用户点击“取消”按钮时,倒计时被清除,模态框被关闭。
通过以上分析,我们可以看到这段代码是一个完整的模态框弹出和交互功能的实现,用于向用户展示信息并提供交互控制。

上代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="bootstrap.min.css">

</head>
    <style>
        .modal-body {
            display: flex; /* 使用Flex布局 */
            flex-direction: column; /* 内容垂直排列 */
            justify-content: center; /* 垂直居中 */
            align-items: center; /* 水平居中 */
            text-align: center; /* 文字居中 */
        }
        #popupImage {
            max-width: 60%; /* 确保图片宽度不超过容器宽度 */
            height: 60%; /* 保持图片比例 */
            margin-bottom: 1rem; /* 添加底部外边距 */
        }
        #popupText {
            font-size: 1.33em; /* 减小字体大小 */
            line-height: 1.5; /* 保持良好的行间距 */
        }
        .btn-secondary {
            background-color: #EAEAEF;
            border-color: #EAEAEF; /* 可选,如果需要修改边框颜色 */
            color: #4c8aca; /* 修改文字颜色,可以根据需要调整 */
        }

        </style>
<body>
    <div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="popupModalLabel" aria-hidden="true" id="popupModal">
        <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <!-- Bootstrap的模态框关闭按钮 -->
                    <h5 class="modal-title" id="popupModalLabel">温馨提醒</h5>
                </div>
                <div class="modal-body">
                    <img id="popupImage" class="img-fluid" src="1.jpg" alt="图片">
                    <p id="popupText" class="mt-3">☛站长开发"轻图压缩站"不易,为了维持网站的正常运行,各位看官可以自愿打赏打赏(✿◠‿◠)</p>
                    <div id="countdown" class="mt-3"></div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                </div>
            </div>
        </div>
    </div>
    <script src="jquery.min.js"></script>
    <script src="bootstrap.min.js"></script>
    <script>
        $(document).ready(function() {
            var countdown = 10;
            var countdownElement = $('#countdown');
            var modal = $('#popupModal');

            // 显示模态框
            modal.modal('show');

            // 更新倒计时
            var interval = setInterval(function() {
                countdownElement.text(countdown);
                if (countdown === 0) {
                    // 自动关闭模态框
                    clearInterval(interval);
                    modal.modal('hide');
                } else {
                    countdown--;
                }
            }, 1300); // 注意:倒计时间隔应为1000毫秒(1秒),而非10000毫秒(10秒)
        // 为取消按钮添加点击事件,清除定时器并关闭模态框
            $('.modal-footer .btn-secondary').on('click', function() {
                clearInterval(interval);
                modal.modal('hide');
            });
        });
    </script>
</body>
</html>

创作不易,点个小赞👍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值