我正在使用一些代码来显示通知消息。 下面的代码显示按钮单击时的消息。 有没有办法在页面加载时显示消息,我打算使用“type”作为变量来选择消息。
对此的任何帮助将不胜感激。感谢
完整代码可在以下网址找到:
http://www.red-team-design.com/cool-notification-messages-with-css3-jquery#comment-168574
<head>
<title>Cool notification messages with CSS3 & Jquery demo - Redteamdesign</title>
<script src="../js/jquery-latest.min.js"></script>
<link rel="stylesheet" type="text/css" media="screen" href="../css/bar.css">
<script>
var myMessages = ['info','warning','error','success']; // define the messages types
function hideAllMessages()
{
var messagesHeights = new Array(); // this array will store height for each
for (i=0; i<myMessages.length; i++)
{
messagesHeights[i] = $('.' + myMessages[i]).outerHeight();
$('.' + myMessages[i]).css('top', -messagesHeights[i]); //move element outside viewport
}
}
function showMessage(type)
{
$('.'+ type +'-trigger').click(function(){
hideAllMessages();
$('.'+type).animate({top:"0"}, 500);
});
}
$(document).ready(function(){
// Initially, hide them all
hideAllMessages();
// Show message
for(var i=0;i<myMessages.length;i++)
{
showMessage(myMessages[i]);
}
// When message is clicked, hide it
$('.message').click(function(){
$(this).animate({top: -$(this).outerHeight()}, 500);
});
setTimeout(function(){hideAllMessages()},4000);
});
</script>
</head>
<body>
<div class="info message">
<h3>FYI, something just happened!</h3>
<p>This is just an info notification message.</p>
</div>
<div class="error message">
<h3>Oh No!, an error ocurred</h3>
<p>This is just an error notification message.</p>
</div>
<div class="warning message">
<h3>Wait, I must warn you!</h3>
<p>This is just a warning notification message.</p>
</div>
<div class="success message">
<h3>Congrats, you did it!</h3>
<p>This is just a success notification message.</p>
</div>
<ul id="trigger-list">
<li><a href="#" class="trigger info-trigger">Info</a></li>
<li><a href="#" class="trigger error-trigger">Error</a></li>
<li><a href="#" class="trigger warning-trigger">Warning</a></li>
<li><a href="#" class="trigger success-trigger">Success</a></li>
</ul>
</body>
答案 0 :(得分:2)
是的,使用:
window.onload = function( ){
SomeJavaScriptCode
};
将其放在<head>
标记内的<script>
文件中。
答案 1 :(得分:2)
您不能拥有多个身体标签。摆脱页面底部的开口正文标记。
当身体像这样加载时,你可以调用一个函数:
<body onload="someFunction();">
或者只需从$(document).ready()
someFunction();
您还可以使用trigger
模拟元素上的click
(或其他):
$('.message').trigger('click');
答案 2 :(得分:2)
要达到您的特定要求(无需等待按钮即可立即显示消息),您可以在就绪功能结束时添加此消息(仅在setTimeout(function(){hideAllMessages()},4000);
之后)
var type="warning";
$('.'+type).animate({top:"0"}, 500);
您可以将“警告”替换为“信息”,“错误”或“成功”(或您想要添加的任何其他内容)。
答案 3 :(得分:0)
问题是showMessage()
函数实际上并没有显示消息,而只是为具有相应类的元素(如.info-trigger)创建了一个事件处理程序。我修改了部分代码,现在就像魅力一样。 :)
工作小提琴:http://jsfiddle.net/MC7Fu/
附加说明:请不要使用<body onload="someFunc()">
之类的内联事件处理程序。使用霍斯曼建议的那个。
window.onload = function( ){
SomeJavaScriptCode
};