http://www.red-team-design.com/cool-notification-messages-with-css3-jqueryで見つけたスクリプトがありますが、コードに問題があります。
1)クリックで非表示にし、2)15秒後に非表示にします
HTML:
<div class="warning message">It is currently past 4pm. Any orders placed between now and midnight will not be placed until 4pm tomorrow.</div>
Javascript:
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(); // fill array
$('.' + myMessages[i]).css('top', -messagesHeights[i]); //move element outside viewport
}
}
function showMessage(type){
hideAllMessages();
$('.'+type).animate({top:"0"}, 500);
setTimeout(function(){
$('.'+type).animate({top: -$('.'+type).outerHeight()}, 500);
hideAllMessages();
},15000);
}
$(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);
});
});
これはphpによって実行されます。これは、phpを使用してコードに次の行を挿入するだけです。
<script type='text/javascript'>
$(document).ready(function(){
showMessage(warning)
});
</script>
なんらかの理由で、クリックしてもdivが非表示にならず、指定した15秒後に非表示になりません。
誰かが何がうまくいかないのか見てみたいと思ったら、私はhttp://jsfiddle.net/dpdesignz/yTaRa/1/でJSFiddleを作成しました。PHPエコーによって実行される部分に関連していると感じているので、これを行う別の方法を知っている人はいますか?