首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使按钮触发Javascript弹出(Divi + ActiveCampaign)

如何使按钮触发Javascript弹出(Divi + ActiveCampaign)
EN

Stack Overflow用户
提问于 2020-02-18 21:36:14
回答 2查看 800关注 0票数 1

我刚刚摆脱了对ActiveCampaign的支持,他们说他们不能向我提供如何添加由wordpress按钮触发的模式弹出表单的代码示例。

我在网上找到了一些资源,但它们都与我正在寻找的功能略有不同。

我已经将ActiveCampaign插件添加到我的wordpress站点中,并且有两个选项可以将表单嵌入到站点中。

  1. 短代码"activeCampaign formId=1“或
  2. <script src="https://exampledomain.com/f/embed.php?id=1" type="text/javascript" charset="utf-8"></script>

我目前正在使用divi主题,并且按钮有CSS ID和CSS类的部分。

因此,总之,我希望能够点击一个按钮,并有激活模式形式弹出。

如果你能告诉我如何向按钮和我的站点添加代码来触发模式弹出,那就太棒了。

如果你有其他信息请告诉我。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2020-02-18 22:12:27

Sugesstion:

这涉及DOM操作。创建一个名为class的css active,它应该设置为要显示的表单容器。下面是一个例子:

代码语言:javascript
复制
var formToggle = document.getElementById("form-toggler");

var formContainer = document.querySelector(".form-container");

formToggle.addEventListener('click', function(){
  // When you click the button, first check if the form is open
  //  so that you know if you should close or open
  if(formContainer.classList.contains("active")){
    // Form is currently open, because it has active as one of it's classes
    // so remove active to hide it.
    formContainer.classList.remove("active");
  }else{
    // Form is currently closed, because it does not have active as one of it's classes
    // so add active to show it.
    formContainer.classList.add("active");
  }
});
代码语言:javascript
复制
.form-container{
  width: 100%;
  height: 100%;
  min-height: 200px;
  background-color: rgba(0,0,0,0.2);
  display: none;
}

/* When form has active class, set display to block */
.form-container.active{
  display: block !important;
}
代码语言:javascript
复制
<div class="form-container">
    <!-- your Form Here -->
    <h1>Yey, form is active!!</h1>
</div>

<button id="form-toggler">OpenForm<button>

这只是在接近您的场景的基本层次上。因此,你必须工作在你的css,使你的模式覆盖整个窗口,并添加一个关闭按钮,以防有人决定关闭它。

票数 0
EN

Stack Overflow用户

发布于 2021-01-01 19:08:20

嘿,这对你也有用。请记住,有一些额外的代码,你可能不会需要它的所有,如动画,但我将留在这些,因为他们看起来有点花哨。对于这段代码,您不需要引导或任何其他库。

HTML:

代码语言:javascript
复制
<a id="gdx-lighbox-modal-unique-1" data-hover="true" type="button" class="gdx-lightbox-tooltip-open-modal lightbox-link gdx-lightbox-button" data-open="gdx-lighbox-modal-1">
Click Here
</a>

<div class="gdx-modal" id="gdx-lighbox-modal-1" data-animation="slideInOutLeft">
<div class="gdx-modal-dialog">
<header class="gdx-modal-header">   
<a class="gdx-close-modal" aria-label="close modal" data-close="">✕</a>  
</header>  
<section class="gdx-modal-content">
//Form would go here instead of the image (image just an example)
<img src="https://gdxdesigns.com/wp-content/uploads/2020/11/little-frog.jpg">  </section> 
<footer class="gdx-modal-footer"> <h3 class="gdx-modal-image-title"></h3></footer> 
</div> 
</div>

CSS:

代码语言:javascript
复制
/* RESET RULES
–––––––––––––––––––––––––––––––––––––––––––––––––– */
:root {
    --lightgray: #efefef;
    --blue: steelblue;
    --white: #fff;
    --black: rgba(0, 0, 0, 0.8);
    --bounceEasing: cubic-bezier(0.51, 0.92, 0.24, 1.15);
  }

  * {
    padding: 0;
    margin: 0;
  }

  .gdx-body {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
    font: 16px/1.5 sans-serif;
  }

  .lightbox-link, a.lightbox-link {
    cursor: pointer;
  margin-left: 2.5%;
  }

  .gdx-lightbox-tooltip-open-modal img {
      width: 20px;
      height: 20px;
  }

  .gdx-lightbox-button {
    padding: 10px 20px;
    background: #000;
    padding: 10px 20px;
    font-weight: normal;
    border: 2px solid #000;
    color: #94c93b;
  }

  .gdx-lightbox-button:hover {
    background: #FFF;
    color: #000;
  }

  /* MODAL
  –––––––––––––––––––––––––––––––––––––––––––––––––– */
  .gdx-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: var(--black);
    cursor: pointer;
    visibility: hidden;
    opacity: 0;
    transition: all 0.35s ease-in;
    z-index: 9999 !important;
  }

  .gdx-modal.is-visible {
    visibility: visible;
    opacity: 1;
  }

  .gdx-modal-dialog {
    position: relative;
    max-width: 100vw;
    max-height: 100vh;
    border-radius: 5px;
    background: var(--white);
    overflow: auto;
    cursor: default;
    margin-top: 5%;
  }

  .gdx-modal-dialog > * {
    padding: 1rem;
  }

  .gdx-modal-header,
  .gdx-modal-footer {
    background: #FFF;
  }

  .gdx-modal-header .gdx-close-modal {
    font-size: 1.5rem;
  }

  .gdx-modal-header a {
      font-size: 2em;
  }

  .gdx-modal-content {
      text-align: center;
  }

  .gdx-modal-content img {
    margin: 0 !important;
  }

  .gdx-close-modal {
      float: right;
      cursor: pointer;
  }

  .gdx-modal p + p {
    margin-top: 1rem;
  }

  .gdx-modal-image-title {
      text-align: center;
      font-size: 1em;
      margin: 0;
  }

  /* ANIMATIONS
  –––––––––––––––––––––––––––––––––––––––––––––––––– */
  [data-animation] .gdx-modal-dialog {
    opacity: 0;
    transition: all 0.5s var(--bounceEasing);
  }

  [data-animation].is-visible .gdx-modal-dialog {
    opacity: 1;
    transition-delay: 0.2s;
  }

  [data-animation="slideInOutDown"] .gdx-modal-dialog {
    transform: translateY(100%);
  }

  [data-animation="slideInOutTop"] .gdx-modal-dialog {
    transform: translateY(-100%);
  }

  [data-animation="slideInOutLeft"] .gdx-modal-dialog {
    transform: translateX(-100%);
  }

  [data-animation="slideInOutRight"] .gdx-modal-dialog {
    transform: translateX(100%);
  }

  [data-animation="zoomInOut"] .gdx-modal-dialog {
    transform: scale(0.2);
  }

  [data-animation="rotateInOutDown"] .gdx-modal-dialog {
    transform-origin: top left;
    transform: rotate(-1turn);
  }

  [data-animation="mixInAnimations"].is-visible .gdx-modal-dialog {
    animation: mixInAnimations 2s 0.2s linear forwards;
  }

  [data-animation="slideInOutDown"].is-visible .gdx-modal-dialog,
  [data-animation="slideInOutTop"].is-visible .gdx-modal-dialog,
  [data-animation="slideInOutLeft"].is-visible .gdx-modal-dialog,
  [data-animation="slideInOutRight"].is-visible .gdx-modal-dialog,
  [data-animation="zoomInOut"].is-visible .gdx-modal-dialog,
  [data-animation="rotateInOutDown"].is-visible .gdx-modal-dialog {
    transform: none;
  }

  @keyframes mixInAnimations {
    0% {
      transform: translateX(-100%);
    }

    10% {
      transform: translateX(0);
    }

    20% {
      transform: rotate(20deg);
    }

    30% {
      transform: rotate(-20deg);
    }

    40% {
      transform: rotate(15deg);
    }

    50% {
      transform: rotate(-15deg);
    }

    60% {
      transform: rotate(10deg);
    }

    70% {
      transform: rotate(-10deg);
    }

    80% {
      transform: rotate(5deg);
    }

    90% {
      transform: rotate(-5deg);
    }

    100% {
      transform: rotate(0deg);
    }
  }

  /* Backend Instructions
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.lightbox-instructions-heading {
    font-size: 1.8em !important;
}
.lightbox-instructions strong {
    font-size: 1.2em !important;
}
.gdx-lightbox-tooltip-open-modal img {
    margin: -0.3em;
    margin-left: 0.25em;
}
xmp {
    white-space: normal;
}
.lightbox-tooltip-instructions-content xmp{
    margin-bottom: 2em;
}

Javascript

代码语言:javascript
复制
    const openEls = document.querySelectorAll("[data-open]");
    const closeEls = document.querySelectorAll("[data-close]");
    const isVisible = "is-visible";

    for (const el of openEls) {
      el.addEventListener("click", function() {
        const modalId = this.dataset.open;
        document.getElementById(modalId).classList.add(isVisible);
      });
    }

    for (const el of closeEls) {
      el.addEventListener("click", function() {
        this.parentElement.parentElement.parentElement.classList.remove(isVisible);
      });
    }

    document.addEventListener("click", e => {
      if (e.target == document.querySelector(".gdx-modal.is-visible")) {
        document.querySelector(".gdx-modal.is-visible").classList.remove(isVisible);
      }
    });

    document.addEventListener("keyup", e => {
      // if we press the ESC
      if (e.key == "Escape" && document.querySelector(".gdx-modal.is-visible")) {
        document.querySelector(".gdx-modal.is-visible").classList.remove(isVisible);
      }
    });

JSFiddle示例可以看到这里

如果你想把它下载为Wordpress插件(当然是免费的),你可以这样做这里

如果您想要查看插件的演示和按钮模式弹出,您将看到这个这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60289783

复制
相关文章

相似问题

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