首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只显示一次Jquery,PHP

问只显示一次Jquery,PHP
EN

Stack Overflow用户
提问于 2017-05-16 06:19:24
回答 2查看 726关注 0票数 1

我有一个弹出窗口,点击按钮就会打开。按钮出现在所有页面中。

弹出窗口应该只出现一次。

当用户打开页面并单击按钮时,弹出窗口必须出现,如果他再次单击相同的按钮,弹出窗口就不会出现,如果他重定向到另一个页面并单击相同的按钮弹出窗口,则不应该出现弹出窗口。

如果浏览器关闭并再次打开,则必须显示弹出窗口,并且必须再次应用相同的条件。

在这些情况下,弹出窗口应该出现,而不应该出现。

如何使用jquery和PHP实现这一目标

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-16 06:52:12

您只可以在jquery中使用sessionStorage创建一次弹出显示--检查工作示例这里

jsfiddle.net/ayatullahrahmani/p1p2zpx5/

这里是jquery

代码语言:javascript
复制
$(document).ready(function () {
               $(".open").click(function () {
                    $(".animateDivWrap").addClass("activePopup");
               });

              $(".close").click(function () {
                  $(".animateDivWrap").removeClass("activePopup");

                  sessionStorage.setItem("myClass", "firstGone");
                    $(".animateDivWrap").addClass(sessionStorage.myClass);
              });

              // after first load this class would be added
              $(".animateDivWrap").addClass(sessionStorage.myClass);
          });

css-

代码语言:javascript
复制
 body {
         overflow:hidden;
         }
         .animateDivWrap {
         position: absolute;
         top: 70px;
         right: 0px;
         left:0px;
         width: 300px;
         height: 199px;
         background: #f6f6f6;
         z-index: 9;
         display: none; 
         /*opacity: 0;*/
         border: solid 1px #ddd;
         border-radius: 5px;
             margin:auto;
         }
         .animateDivContent {
         position:relative;
             padding: 10px;
         }
         .animateDivContent .close {
         position: absolute;
         right: 5px;
         top: 3px;
         font-size: 12px;
         color: #373434;
         opacity: 1;
         }
         @-webkit-keyframes fadeInUp { 
         0% { 
         opacity: 0; 
         -webkit-transform: translateY(400px); 
         } 
         50%{
         opacity: 0.3; 
         }
         100% { 
         opacity: 1; 
         -webkit-transform: translateY(0); 
         } 
         } 
         @keyframes fadeInUp { 
         0% { 
         opacity: 0; 
         transform: translateY(400px); 
         } 
         50%{
         opacity: 0.3; 
         }
         100% { 
         opacity: 1; 
         transform: translateY(0); 
         } 
         } 
         .fadeInUp{ 
         opacity: 0; 
         -webkit-transform: translateY(400px); 
         transform: translateY(400px);
         }
         .activePopup {
         display: block;
         /*opacity:1;*/
         /*-webkit-animation:bounce 1s infinite;*/
         -webkit-animation-name: fadeInUp; 
         animation-name: fadeInUp; 
         -webkit-animation-name: fadeInUp; /* Safari 4.0 - 8.0 */
         -webkit-animation-duration: 1s; /* Safari 4.0 - 8.0 */
         animation-name: fadeInUp;
         animation-duration: 1s;
         }
         .close {
         cursor: pointer;
         }
         .firstGone  {
         display:none;
         }

html-

代码语言:javascript
复制
<button type="button" class="open">open</button>

      <div class="animateDivWrap">
         <div class="animateDivContent">
            <a class="close" href="javascript:void(0)" title="close"><i class="fa fa-times" aria-hidden="true"></i></a>
         </div>
      </div>
票数 0
EN

Stack Overflow用户

发布于 2017-05-16 06:39:19

sessionStorage是这方面的最佳选择。因为它只为该会话存储数据。这样你就可以存储弹出窗口是否是不存在的。

只需在单击按钮时将以下函数绑定为处理程序函数即可。

代码语言:javascript
复制
function onButtonClick(e)
{
    if (sessionStorage.isButtonClicked == undefined) {

         sessionStorage.isButtonClicked = true;

         // You can do require functionality here e.g. open the popup. 

    } else {

         // do nothing as popup is already opened.
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43993807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档