如何停止弹出而不是隐藏在CSS中?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (69)

我有一个弹出窗口,在纯CSS的帮助下,我做了一个切换。现在,如果我运行弹出并移动我的鼠标在窗口的最上面或最下面的部分,弹出开始消失,如果我的光标在身体部分,它的开始出现。我在弹出代码中使用0%的JavaScript。https:/imgur.com/a/bChuzIv集中在鼠标光标上!另外,我正在寻找一种方法,在没有js的页面加载时打开一个弹出窗口。

.modalDialog {
  position: fixed;
  font-family: Arial, Helvetica, sans-serif;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
  z-index: 99999;
  opacity: 0;
  -webkit-transition: opacity 400ms ease-in;
  -moz-transition: opacity 400ms ease-in;
  transition: opacity 400ms ease-in;
  pointer-events: auto;
}

.modalDialog:target,.modalDialog:hover {
  opacity: 1;
  pointer-events: auto;
}

.modalDialog>#__spookyPopup {
  width: 400px;
  position: relative;
  margin: 10% auto;
  padding: 5px 20px 13px 20px;
  border-radius: 10px;
  background: #fff;
  background: -moz-linear-gradient(#fff, #999);
  background: -webkit-linear-gradient(#fff, #fff);
  background: -o-linear-gradient(#fff, #999);
}

.profile_container {
  height: 160px;
  width: 400px;
  background: #;
  display: inline-block;
}

.profile_div {
  height: 120px;
  width: 130px;
  margin-top: 20px;
  margin-left: 130px;
  background: #ddd;
  border: 1px solid grey;
}

.head_div {
  min-height: 12px;
  width: 100%;
}



.priv_cont {
  height: 90px;
  width: 400px;
  background: #;
  display: inline-block;
}

.priv_head {
  height: 60px;
  width: 330px;
  margin-left:30px;
  margin-top:15px;
  background: #;

  
}




.clicker {
  display: inline-block;
  width: 100px;
  height: 50px;
  background-color: ;
  color: #FFF;
}

.clicker:hover{border-bottom: 2px solid red ;
}


#click_styling
{
margin-top:20px;
height: 50px;
 width: 197px;
 text-align:center;
 font-size:20px;color:#000;
 line-height:50px;
 text-decoration:none;
 cursor:default;"

}
.clicker.hidden {
  display: none;
}

.hiddendiv {
  height: 0px;
  background-color: ;
  overflow: hidden;
  transition: height 0.5s;
}


.social {
margin-top:20px;
margin-bottom:20px;
  height: 120px;
  width: 400px;
  background: #;
  display: inline-block;
}

.social_link {
  height: 60px;
  width: 330px;
  margin-left:30px;
  margin-top:15px;
  background: #;
 
  
}
.manual_link
{
  height: 35px;
  width: 330px;
  margin-left:30px;
  margin-top:30px;
  background: #e3e3e3;
   border-bottom:2px solid red;
  }
  

.hiddendiv.nr2 {
  background-color: ;
}

#showdiv1:target~div a[href="#showdiv1"],
#showdiv2:target~div a[href="#showdiv2"] {
  display: none;
}

#showdiv1:target~div a[href="#hidediv1"],
#showdiv2:target~div a[href="#hidediv2"] {
  display: inline-block;
}

#showdiv1:target~div .hiddendiv.nr1,
#showdiv2:target~div .hiddendiv.nr2 {
  height: 150px;
}
<a href="#__spooky_auth_popup">Open Modal</a>

<div id="__spooky_auth_popup" class="modalDialog">
  <div id="__spookyPopup">

    <div class="profile_container">
      <div class="profile_div"></div>
    </div>


    <div class="head_div">
      <p style="margin:0;padding:0;text-align:center;
font-size:25px;color:#8d8686;">
      <I>Hey, please login to access your private content.</I>
      </p>
    </div>


    <div id="showdiv1"></div>
      <div id="showdiv2"></div>

        <div>
          <a href="#showdiv1" class="clicker "  id="click_styling" tabindex="1">SOCIAL</a>
          <a href="#hidediv1" class="clicker hidden "  id="click_styling" tabindex="1">SOCIAL</a>

          <a href="#showdiv2" class="clicker "  id="click_styling" tabindex="2">MANUAL</a>
          <a href="#hidediv2" class="clicker hidden "  id="click_styling" tabindex="2">MANUAL</a>

          <div class="hiddendiv nr1">
            <div class="social">
              <div class="social_link"> 
                <div data-html="allow" style="margin-left:80px;margin-top:10px;">
                  <iframe  id="iFrame1"  style="border: 0px;  display: block" height="400" class="spoooky-auth" src="https://api.spooo.ky/auth/facebook" border="0"></iframe>
                </div>
                <!-- End of facebook button -->
              </div>

              <div class="social_link">
                <!-- Optional: Linkedin button starts here -->
                <div data-html="allow" style="margin-left:95px;margin-top:10px;">
                <iframe style="border: 0px;  display: inline-block" class="spoooky-auth" src="https://api.spooo.ky/auth/linkedin" border="0"></iframe>
                <!-- End of linkedin button -->
              </div>
            </div>
          </div>
        </div>

        <div class="hiddendiv nr2">
          <div class="social">
            <div class="manual_link" > 
              <p style="text-align:left;font-size:25px;color:#979191;line-height:50px;">
              <I>WaterMark Text</I></p>
            </div>
          </div>
        </div>
      </div>

      <div class="priv_cont">
        <div class="priv_head">
          <p style="margin:0;padding:0;text-align:center;font-size:18px;color:#000;">
            <I>By continuing to the content you agree with the <a href="#"  style="color:#000;">cookie</a> 
  and <a href="#" style="color:#000;">privacy</a> policies.</I>
          </p>
        </div>
      </div>

我怎么才能阻止它?

提问于
用户回答回答于

在你的代码片段中看到的'问题'是由于使用:hover来显示弹出窗口 - 因此它将显示鼠标在窗口中的时间并在不显示时隐藏。 我无法猜测为什么:使用悬停,但仅使用:target不能按编码工作,因为只有一个元素匹配:target伪类,所以如果你单击showdiv1 / showdiv2链接之一, 整个弹出窗口将消失。 当'__spooky_auth_popup'是当前目标并且showdiv1 / showdiv2元素中的任何一个是目标时,你必须找到一种方法为弹出窗口匹配BOTH。 这可能需要重新构造文档并为showdiv1 / 2元素使用更复杂的选择器。

扫码关注云+社区

领取腾讯云代金券