• 模态窗口的定时关闭


    模态窗口的定时关闭:有时我们可能在填完信息或发完贴字之后会想要弹出一个“验证成功”或者“发帖成功”的小弹窗,如下图所示,并且希望这个小弹窗1s之后就自动消失

    这是我们就可以用模态窗口配合js的setTimeOut定时器来完成,从bootstrap直接粘来模态窗口的代码后,删去自己不想要的部分(删去模态窗口的body和footer,还有title),最终变成下面这样

    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" style=" 300px;margin: 100px auto">
            <div class="modal-content" >
                <div class="modal-header">
                    发帖成功
                </div>
    
            </div><!-- /.modal-content -->
        </div><!-- /.modal -->
    </div>

    再辅以js代码控制,最终就实现了上面说的效果:

    <script>
    
            $(function(){        // 页面加载完毕后自动弹出该模态窗口
                 $("#myModal").modal('show')
                setTimeout(function(){
                    // 1s后关闭模态窗口
                     $('#myModal').modal('hide');
    
                    // 必须等1s才能跳转
                    setTimeout("location.href = '${pageContext.request.contextPath}/page/main'", 2000);
    
                },1000);
            }
            );
    
        </script>

    如果有两个模态窗口要相继弹出,那么跳转的语句也必须设置定时器等第二个模态窗口消失后才跳转,否则可能看不到第二个模态窗口的弹出就已经发生跳转了。

    先写两个模态窗口,两个窗口设置不同的Id属性

    <!-- 模态框(Modal) -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" style=" 300px;margin: 100px auto">
            <div class="modal-content" >
                <div class="modal-header">
                    发帖成功
                </div>
    
            </div><!-- /.modal-content -->
        </div><!-- /.modal -->
    </div>
    
    <%--升级提示--%>
    <!-- 模态框(Modal) -->
    <div class="modal fade" id="myModal2" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog" style=" 300px;margin: 100px auto">
            <div class="modal-content" >
                <div class="modal-header">
                    恭喜升级成功
                </div>
    
            </div><!-- /.modal-content -->
        </div><!-- /.modal -->
    </div>

    辅以js定时控制:

    <script>
            $(function(){
                 $("#myModal").modal('show')
                setTimeout(function(){
                     $('#myModal').modal('hide');
    
                    // 判断是否升级
                    // 获取model中rank的值, 判断是否升级
                    var rank = "${rank}";
                    if(rank > 0){
                        // 如果等级提升,则延迟跳转
                        $("#myModal2").modal('show');
                        setTimeout("$('#myModal2').modal('hide')", 2000);
                    }
                    // 必须等2s才能跳转
                    setTimeout("location.href = '${pageContext.request.contextPath}/page/main'", 2000);
    
                },1000);
            }
            );
    </script>

    写完js后就可以实现先弹出一个“发帖成功”的小窗口,1秒后该窗口自动消失,获取session中的rank是否改变,如果改变则继续弹出“升级成功”的小窗口,最后2秒后这个窗口自动消失,因为要弹出两个窗口,所以必须给跳转配置一个定时器,使它延时跳转,否则第二个窗口会显示不出来。

  • 相关阅读:
    微信视频号里的视频如何保存下来呢?
    jQuery实现平面图区域标记
    npm安装教程 yarn 基本安装和使用
    VitePress :VuePress 下一代建站工具
    基于CentOS的ECS实例实现OSS反向代理
    备份MySQL数据库到七牛云的shell脚本
    ShedLock 解决分布式结构下定时任务重复执行问题
    linux清除日志和文件缓存
    Communications link failure:The last packet successfully received from the server was 0 millisecond ago
    CentOS7安装nodeJs
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/12373434.html
Copyright © 2020-2023  润新知