Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 类似于facebook中的对话框通知_Javascript_Jquery_Dialog - Fatal编程技术网

Javascript 类似于facebook中的对话框通知

Javascript 类似于facebook中的对话框通知,javascript,jquery,dialog,Javascript,Jquery,Dialog,我正在尝试做一个类似facebook的通知: 当一个朋友在你的时间线上发布了一些东西, 对话框显示在页面的左下角。它淡入,停留4秒,然后淡出 如果有多个对话框,则第二个对话框将显示在前一个对话框的上方,第三个对话框将显示在第二个对话框的上方,以此类推 此外,我没有成功地完成一个类似facebook的对话 这是我的JSFIDLE: html: 这是一个通知的例子。它显示在页面的左下角: 感谢您的帮助 最后我准备好了:) 你需要: 每次创建变量和asign对话框 在关闭功能中,您必须删除此对话

我正在尝试做一个类似facebook的通知: 当一个朋友在你的时间线上发布了一些东西, 对话框显示在页面的左下角。它淡入,停留4秒,然后淡出

如果有多个对话框,则第二个对话框将显示在前一个对话框的上方,第三个对话框将显示在第二个对话框的上方,以此类推

此外,我没有成功地完成一个类似facebook的对话

这是我的JSFIDLE:

html:

这是一个通知的例子。它显示在页面的左下角:

感谢您的帮助

最后我准备好了:)

你需要:

  • 每次创建变量和asign对话框
  • 在关闭功能中,您必须删除此对话框。因为.dialog('close')仅隐藏此对话框
  • 计算并设置顶部位置
jQuery

var bottom = 545, top = 0, height = 150;

function dialog(mytext) {
     var myDialog = $('<div/>');
     myDialog.addClass('js-notice');
     myDialog.text(mytext);
     top =  $('.js-notice').length * height;
     myDialog.dialog({
        autoOpen: false,
        modal: false,
        show: "fade",
        hide: "fade",
        open: function(){
            var tempTop = bottom - top;
            if (tempTop < 0) {
                tempTop = 0;
            }
            $(this).parent().css({'top' : tempTop + 'px', 'border' : '1px solid red'});
            setTimeout(function()
            {
                myDialog.dialog('close');
            }, 4000);    
        }, 
        close : function() {
            top -= height;
            if (top < 0) {
                top = 0;
            }

            $(this).remove();

            $('.js-notice').each(function(i) {
                var tempTop = bottom - (i * height);
                console.log($('.js-notice').length, tempTop);
                if (tempTop < 0) {
                    tempTop = 0;
                }

                $(this).parent().css({'top' : tempTop + 'px', 'border' : '1px solid green'});
            });
        }
    });

    myDialog.dialog("option", "position", {at: "left bottom"});
    myDialog.dialog('open');
}

$(document).ready(function() {
dialog('window1');
setTimeout(function(){dialog('window2')},3000);    
setTimeout(function(){dialog('window3')},6000);       
}); 
var底部=545,顶部=0,高度=150;
函数对话框(mytext){
var myDialog=$('');
myDialog.addClass('js-notice');
myDialog.text(mytext);
顶部=$('.js notice')。长度*高度;
myDialog.dialog({
自动打开:错误,
莫代尔:错,
显示:“褪色”,
隐藏:“褪色”,
打开:函数(){
var=底部-顶部;
if(p<0){
TENTOP=0;
}
$(this.parent().css({'top':testop+'px','border':'1px实心红色'});
setTimeout(函数()
{
myDialog.dialog('close');
}, 4000);    
}, 
关闭:函数(){
顶部-=高度;
如果(顶部<0){
top=0;
}
$(this.remove();
$('.js notice')。每个(函数(i){
var TENTOP=底部-(i*高度);
log($('.js notice').length,testop);
if(p<0){
TENTOP=0;
}
$(this.parent().css({'top':testop+'px','border':'1px纯绿'});
});
}
});
对话框(“选项”、“位置”{at:“左下”});
myDialog.dialog('open');
}
$(文档).ready(函数(){
对话框(“窗口1”);
setTimeout(函数(){dialog('window2')},3000);
setTimeout(函数(){dialog('window3')},6000);
}); 
最后我准备好了:)

你需要:

  • 每次创建变量和asign对话框
  • 在关闭功能中,您必须删除此对话框。因为.dialog('close')仅隐藏此对话框
  • 计算并设置顶部位置
jQuery

var bottom = 545, top = 0, height = 150;

function dialog(mytext) {
     var myDialog = $('<div/>');
     myDialog.addClass('js-notice');
     myDialog.text(mytext);
     top =  $('.js-notice').length * height;
     myDialog.dialog({
        autoOpen: false,
        modal: false,
        show: "fade",
        hide: "fade",
        open: function(){
            var tempTop = bottom - top;
            if (tempTop < 0) {
                tempTop = 0;
            }
            $(this).parent().css({'top' : tempTop + 'px', 'border' : '1px solid red'});
            setTimeout(function()
            {
                myDialog.dialog('close');
            }, 4000);    
        }, 
        close : function() {
            top -= height;
            if (top < 0) {
                top = 0;
            }

            $(this).remove();

            $('.js-notice').each(function(i) {
                var tempTop = bottom - (i * height);
                console.log($('.js-notice').length, tempTop);
                if (tempTop < 0) {
                    tempTop = 0;
                }

                $(this).parent().css({'top' : tempTop + 'px', 'border' : '1px solid green'});
            });
        }
    });

    myDialog.dialog("option", "position", {at: "left bottom"});
    myDialog.dialog('open');
}

$(document).ready(function() {
dialog('window1');
setTimeout(function(){dialog('window2')},3000);    
setTimeout(function(){dialog('window3')},6000);       
}); 
var底部=545,顶部=0,高度=150;
函数对话框(mytext){
var myDialog=$('');
myDialog.addClass('js-notice');
myDialog.text(mytext);
顶部=$('.js notice')。长度*高度;
myDialog.dialog({
自动打开:错误,
莫代尔:错,
显示:“褪色”,
隐藏:“褪色”,
打开:函数(){
var=底部-顶部;
if(p<0){
TENTOP=0;
}
$(this.parent().css({'top':testop+'px','border':'1px实心红色'});
setTimeout(函数()
{
myDialog.dialog('close');
}, 4000);    
}, 
关闭:函数(){
顶部-=高度;
如果(顶部<0){
top=0;
}
$(this.remove();
$('.js notice')。每个(函数(i){
var TENTOP=底部-(i*高度);
log($('.js notice').length,testop);
if(p<0){
TENTOP=0;
}
$(this.parent().css({'top':testop+'px','border':'1px纯绿'});
});
}
});
对话框(“选项”、“位置”{at:“左下”});
myDialog.dialog('open');
}
$(文档).ready(函数(){
对话框(“窗口1”);
setTimeout(函数(){dialog('window2')},3000);
setTimeout(函数(){dialog('window3')},6000);
}); 

如果dialog1被隐藏,您想显示第二个对话框吗?如果调用函数
dialog('window1'),我想显示第二个对话框,对话框将显示在页面底部。如果我调用dialog('window2');如果对话框(“window1”)尚未关闭,请将第二个对话框置于第一个对话框之上。如果对话框1未显示,请将对话框2置于底部。。等非常感谢。如果dialog1被隐藏,您想显示第二个对话框吗?如果调用函数
dialog('window1'),我想显示第二个对话框,对话框将显示在页面底部。如果我调用dialog('window2');如果对话框(“window1”)尚未关闭,请将第二个对话框置于第一个对话框之上。如果对话框1未显示,请将对话框2置于底部。。等非常感谢。哇!谢谢你的代码和解释!!你帮了我!非常感谢你!!再次感谢您,但有一个小错误:当我将ready函数设置为:$(document).ready(函数(){dialog('window1');dialog('window2');dialog('window3');});窗户3没有放在他合适的地方谢谢你我查错了:哇!谢谢你的代码和解释!!你帮了我!非常感谢你!!再次感谢您,但有一个小错误:当我将ready函数设置为:$(document).ready(函数(){dialog('window1');dialog('window2');dialog('window3');});窗户没有放在他合适的地方谢谢我查错了
var bottom = 545, top = 0, height = 150;

function dialog(mytext) {
     var myDialog = $('<div/>');
     myDialog.addClass('js-notice');
     myDialog.text(mytext);
     top =  $('.js-notice').length * height;
     myDialog.dialog({
        autoOpen: false,
        modal: false,
        show: "fade",
        hide: "fade",
        open: function(){
            var tempTop = bottom - top;
            if (tempTop < 0) {
                tempTop = 0;
            }
            $(this).parent().css({'top' : tempTop + 'px', 'border' : '1px solid red'});
            setTimeout(function()
            {
                myDialog.dialog('close');
            }, 4000);    
        }, 
        close : function() {
            top -= height;
            if (top < 0) {
                top = 0;
            }

            $(this).remove();

            $('.js-notice').each(function(i) {
                var tempTop = bottom - (i * height);
                console.log($('.js-notice').length, tempTop);
                if (tempTop < 0) {
                    tempTop = 0;
                }

                $(this).parent().css({'top' : tempTop + 'px', 'border' : '1px solid green'});
            });
        }
    });

    myDialog.dialog("option", "position", {at: "left bottom"});
    myDialog.dialog('open');
}

$(document).ready(function() {
dialog('window1');
setTimeout(function(){dialog('window2')},3000);    
setTimeout(function(){dialog('window3')},6000);       
});