修复Popup顺利举起

时间:2013-09-01 09:28:17

标签: javascript jquery html css popup

我创建了一个弹出对话框,当用户滚动页面时,该对话框在左下方抬起。 你可以在这里看到它 - http://uposonghar.com/jobs/odesk/daniel/new/

我的问题是第一次不顺利举起,然后就可以了。任何人请建议任何想法来解决它。需要顺利举起。

我的代码

<div id="scrolltriggered" style="width: 310px; left: 10px; bottom: 10px;">
<div id="inscroll">
    <a href="#close" id="closebox">x</a><a href="http://www.google.com" target="_blank"><img src="images/buyersguide.png" alt="Free Resources" height="235" width="310">
     </a>
</div>
</div>


<script type="text/javascript"> 
var stb = {
hascolsed: false,
cookieLife: 7,
triggerHeight: 30,
stbElement: ""
}; 
</script>

Javascript代码 -

if (typeof stb === "undefined")
var stb = {};
jQuery(document).ready(function () {
jQuery("#closebox").click(function () {
    jQuery('#scrolltriggered').stop(true, true).animate({ 'bottom':'-210px' }, 700, function () {
        jQuery('#scrolltriggered').hide();
        stb.hascolsed = true;
        jQuery.cookie('nopopup', 'true', { expires: stb.cookieLife, path: '/' });
    });
    return false;
});

stb.windowheight = jQuery(window).height();
stb.totalheight = jQuery(document).height();
stb.boxOffset = '';
if (stb.stbElement != '') {
    stb.boxOffset = jQuery(stb.stbElement).offset().top;
}
jQuery(window).resize(function () {
    stb.windowheight = jQuery(window).height();
    stb.totalheight = jQuery(document).height();
});

jQuery(window).scroll(function () {
    stb.y = jQuery(window).scrollTop();
    stb.boxHeight = jQuery('#scrolltriggered').outerHeight();
    stb.scrolled = parseInt((stb.y + stb.windowheight) / stb.totalheight * 100);


    if (stb.showBox(stb.scrolled, stb.triggerHeight, stb.y) && jQuery('#scrolltriggered').is(":hidden") && stb.hascolsed != true) {
        jQuery('#scrolltriggered').show();
        jQuery('#scrolltriggered').stop(true, true).animate({ 'bottom':'10px' }, 700, function () {
        });
    }
    else if (!stb.showBox(stb.scrolled, stb.triggerHeight, stb.y) && jQuery('#scrolltriggered').is(":visible") && jQuery('#scrolltriggered:animated').length < 1) {
        jQuery('#scrolltriggered').stop(true, true).animate({ 'bottom':-stb.boxHeight }, 700, function () {
            jQuery('#scrolltriggered').hide();
        });
    }
});

jQuery('#stbContactForm').submit(function (e) {
    e.preventDefault();
    stb.data = jQuery('#stbContactForm').serialize();

    jQuery.ajax({
        url:stbAjax.ajaxurl,
        data:{
            action:'stb_form_process',
            stbNonce:stbAjax.stbNonce,
            data:stb.data
        },
        dataType:'html',
        type:'post'

    }).done(function (data) {
            jQuery('#stbMsgArea').html(data).show('fast');
        });

    return false;
});
});

(function(stb_helpers) {
stb_helpers.showBox = function(scrolled, triggerHeight, y) {
    if (stb.isMobile()) return false;
    if (stb.stbElement == '') {
        if (scrolled >= triggerHeight) {
            return true;
        }
    }
    else {
        if (stb.boxOffset < (stb.windowheight + y)) {
            return true;
        }
    }
    return false;
};
stb_helpers.isMobile = function(){
    if (navigator.userAgent.match(/Android/i)
        || navigator.userAgent.match(/webOS/i)
        || navigator.userAgent.match(/iPhone/i)
        || navigator.userAgent.match(/iPod/i)
        || navigator.userAgent.match(/BlackBerry/i)
        ) {
        return true;
    }
    else return false;
}
})(stb);

2 个答案:

答案 0 :(得分:2)

我认为你需要改变css,在你的aspx中复制粘贴以下内容

<div style="width: 310px; left: 10px; bottom: -225px; display: none;" id="scrolltriggered">

希望它有助于

答案 1 :(得分:1)

您需要做的就是将以下行添加到您的文档中作为第一行

$("#scrolltriggered").css({bottom: -235});

这将确保弹出窗口以235px滚动到底部。如果需要它可以通过使用jquery选择器可变地滚动添加元素高度。

请参阅小提琴Here