Sha256: bd2cf3e148ea273562fc4fb4880a029fe0b281f3d32b6cb569ae8939dbad5cd7

Contents?: true

Size: 1.66 KB

Versions: 1

Compression:

Stored size: 1.66 KB

Contents

let Button = {
  target : ".button-wrap.switch-button"
};

const ButtonSwitch = (e,type) => {
  let text = $(e.target),
      bg   = text.siblings(".button-bg"),
      btn  = text.parent(),
      all  = [text,btn,bg];

  let Text = {
    dis : {
      before : $(btn).siblings(".before"),
      after  : $(btn).siblings(".after")
    },
    dat : {
      before : $(btn).parent().siblings().children(".before"),
      after  : $(btn).parent().siblings().children(".after")
    }
  };

  let before = [Text.dis.before,Text.dat.before],
      after  = [Text.dis.after,Text.dat.after];

  if (btn.hasClass("undo")) {

    if (type === "down") {

      gsap.set([btn,bg],{
        clearProps : "all"
      });

    } else if (type === "up") {

      $(btn).removeClass("undo");

      gsap.set([before,after],{
        clearProps : "all"
      });

      gsap.set(text,{
        text : "Switch"
      });
    }


  } else {

    if (type === "down") {
     gsap.set([btn,bg],{
        scale : 0.95
     });
    }

    else if (type === "up") {

     let tl = gsap.timeline();

      tl
      .to(before,{
        duration : 0.2,
        opacity : 0
      })
      .set([btn,bg],{
        backgroundColor : Color.green
      })
      .set(text,{
        text  : "Undo"
      })
      .set(before,{
        display : "none",
      })
      .set(after,{
        display : "block"
      })
      .to(bg,{
        duration : 0.5,
        scaleX   : 1.2,
        scaleY   : 1.3,
        opacity  : 0
      })
      .call(()=>{
        $(btn).addClass("undo");
      })
      ;
    }
  }
}

$(Button.target)
.mousedown(function(e) {
  ButtonSwitch(e,'down');
})
.mouseup(function(e) {
  ButtonSwitch(e,'up');
});

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
futuro-0.7.2 assets/js/footer/custom/SwitchButton.js