我正在使用jquery通知,但主要问题是它在内容之上添加了通知。我想推迟内容。有什么建议怎么做?
我用这个来调用脚本:
<script type="text/javascript">
$(document).ready(function() {
showNotification({
type : "success",
message: "This is a sample success notification"
});
});
</script>
JQUERY:
/**
* Javascript functions to show top nitification
* Error/Success/Info/Warning messages
* Developed By: Ravi Tamada
* url: http://androidhive.info
* © androidhive.info
*
* Created On: 10/4/2011
* version 1.0
*
* Usage: call this function with params
showNotification(params);
**/
function showNotification(params){
// options array
var options = {
'showAfter': 0, // number of sec to wait after page loads
'duration': 0, // display duration
'autoClose' : false, // flag to autoClose notification message
'type' : 'success', // type of info message error/success/info/warning
'message': '', // message to dispaly
'link_notification' : '', // link flag to show extra description
'description' : '' // link to desciption to display on clicking link message
};
// Extending array from params
$.extend(true, options, params);
var msgclass = 'succ_bg'; // default success message will shown
if(options['type'] == 'error'){
msgclass = 'error_bg'; // over write the message to error message
} else if(options['type'] == 'information'){
msgclass = 'info_bg'; // over write the message to information message
} else if(options['type'] == 'warning'){
msgclass = 'warn_bg'; // over write the message to warning message
}
// Parent Div container
var container = '<div id="info_message" class="'+msgclass+'"><div class="center_auto"><div class="info_message_text message_area">';
container += options['message'];
container += '</div><div class="info_close_btn button_area" onclick="return closeNotification()"></div><div class="clearboth"></div>';
container += '</div><div class="info_more_descrption"></div></div>';
$notification = $(container);
// Appeding notification to Body
$('body').append($notification);
var divHeight = $('div#info_message').height();
// see CSS top to minus of div height
$('div#info_message').css({
top : '-'+divHeight+'px'
});
// showing notification message, default it will be hidden
$('div#info_message').show();
// Slide Down notification message after startAfter seconds
slideDownNotification(options['showAfter'], options['autoClose'],options['duration']);
$('.link_notification').live('click', function(){
$('.info_more_descrption').html(options['description']).slideDown('fast');
});
}
// function to close notification message
// slideUp the message
function closeNotification(duration){
var divHeight = $('div#info_message').height();
setTimeout(function(){
$('div#info_message').animate({
top: '-'+divHeight
});
// removing the notification from body
setTimeout(function(){
$('div#info_message').remove();
},200);
}, parseInt(duration * 1000));
}
// sliding down the notification
function slideDownNotification(startAfter, autoClose, duration){
setTimeout(function(){
$('div#info_message').animate({
top: 0
});
if(autoClose){
setTimeout(function(){
closeNotification(duration);
}, duration);
}
}, parseInt(startAfter * 1000));
}
答案 0 :(得分:0)
一种可能性是在内容之前插入通知容器。然后,您可以将初始高度设置为0,并设置动画高度。随着通知容器的扩展,内容将向下移动。
答案 1 :(得分:0)
好的,不是一个完整的解决方案......问题是CSS无疑负责使通知出现在页面顶部。在通知js中,您将找到
行$('body').append($notification);
如果您将其更改为
$('body').prepend($notification);
通知将显示在顶部,只要您还确保您的css具有:
#info_message {
position:relative;
}
如果有position: absolute
,那么您的通知将浮动在其他文本上。
当通知出现并消失时,您的内容可能会有一些跳跃,但动画的其余部分应该没问题。您可能需要将高度扩展/收缩与位置移动混合以获得平滑过渡,或使用其他库。
答案 2 :(得分:0)
在您的HTML文件中添加一个div,您希望通知显示如下:
<body>
<div id="notificationDiv">
This is the DIV, where you want notification to appear.
</div>
<div id="content">
This is content of the page.
</div>
</body>
然后只需更改JQUERY文件中的行:
// Appeding notification to Body
$('body').append($notification);
到此:
// Appeding notification to Body
$('#notificationDiv').html($notification);
您可以查看there。
要推送内容,请在jquery_notification.css文件中更改:
#info_message{
display: none;
width: 100%;
height: 51px;
position: absolute;
top: 0;
position: fixed;
z-index: 50000;
margin: 0;
padding: 0;
}
...到此(删除两个位置属性):
#info_message{
display: none;
width: 100%;
height: 51px;
top: 0;
z-index: 50000;
margin: 0;
padding: 0;
}