我创建了一个电子邮件订阅弹出模式。现在,我有模式设置,以淡入,但我不想让模式从底部的页面上滑到顶部。我尝试了slideUp()而不是fadeIn(),但是它不起作用。我觉得我错过了什么。我需要为slideUp()创建另一个函数吗?它是一个弹出模式,所以当窗口滚动而不是在单击事件上时,它就准备好了。任何帮助都是非常感谢的。谢谢。我的密码在下面。
$(document).scroll(function() {
if (!$("#mc_embed_signup").data("userClosed")) {
$(".popup-close").click(function(e) {
closeSPopup(e);
});
var a = $(this).scrollTop();
if (a > 400) {
$("#mc_embed_signup").slideUp(600);
}
}
});
function closeSPopup(e) {
e.preventDefault();
$("#mc_embed_signup").data("userClosed", true);
$("#mc_embed_signup").hide();
}发布于 2018-02-12 19:23:05
jQuery .slideUp()用滑动动作隐藏匹配的元素。如果您想要滑动弹出窗口,可以使用.animate()
$("#popup").show().animate({top: (window.innerHeight / 2 - 50) + "px"}, 1000);#popup {
display: none;
width: 200px;
height: 100px;
position: fixed;
top: 100%;
left: calc(50% - 100px);
background-color:cyan;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="popup"><div>
发布于 2018-02-12 19:15:29
应该使用.slideDown(),但是!而不是在CSS中使用top: NN,而是使用bottom: NN。这样,元素“锚定”到它的底部属性,.slideDown()将执行自下而上的操作!
var $popup = $("#popup");
$popup.slideDown();#popup {
position: absolute;
transform: translate(-50%, 0);
bottom: 24px; /* don't use top. Use bottom */
left:50%;
width: 300px;
height: 160px;
background:red;
display: none;
}<div id="popup">Popup ou yeah</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
https://stackoverflow.com/questions/48753512
复制相似问题