我在完成此彈出塊和cookie時遇到問題。基本上我需要將div顯示給新訪問者(每30天),並在點擊關閉圖標後保持關閉狀態,如果他們改變了頁面並且沒有點擊關閉它,應該再次彈出。如果他們點擊關閉,它應該會在所有頁面上消失,直到30天后纔會顯示。目前它幾乎可以工作,除了當你改變頁面時,div有時會閃爍並快速顯示,但隨後消失 - 我不能爲我的生活找出原因。使用cookie顯示div
任何人都可以請幫助我得到這個工作的最後部分,我一直在掙扎一段時間,並且必須缺少一些簡單的東西。 非常感謝!
HTML
<div id = "theLink" style="display:block">
<?php if($this->countModules('tekenin2')) : ?>
<div id="gototop">
<div id="popup"><a href="#" onclick="parentNode.remove();return false; ">
<img src="/templates/marktoe/images/close.png" id="close" class="close" border="0" alt="close" /></a>
<jdoc:include type="modules" name="tekenin2" style="xhtml" />
</div>
</div>
<?php endif; ?>
</div>
CSS
div#theLink {
width: 500px;
position: fixed;
z-index: 99999999;
top: 15%;
left: 35%;
}
div#popup {
border: 2px solid #8CC34A;
padding: 20px;
background-color: #FFF;
width: 500px;
opacity: 0.95;
margin: 0;
-moz-box-shadow: 10px 10px 10px 10px rgba(0, 0, 0, 0.5);
-webkit-box-shadow: 10px 10px 10px 10px rgba(0, 0, 0, 0.5);
box-shadow: 10px 10px 10px 10px rgba(0, 0, 0, 0.5);
border-top-right-radius: 15px;
border-top-left-radius: 15px;
border-bottom-left-radius: 15px;
border-bottom-right-radius: 15px;
}
#popup img.close {
float: right;
position: relative;
z-index: 9999;
top: 0px;
right: 0px;
}
.moduletable-nlpopup {
margin: 0;
padding: 70px 0 0 0;
background-repeat: no-repeat;
background-position: top leftpx;
border: none;
}
.moduletable-nlpopup h3 {
}
a.toplink {
font-size:10px;
}
#gototop {
display:none;
font-size:10px;
width:500px;
font-size:11px;
text-decoration:none;
padding:0px;
height: 300px;
}
#gototop:hover {
}
的JavaScript
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
function setTheDivStyle() {// body on load event
if(!readCookie('wroteIt')) {
// if cookie not found display the div and create the cookie
document.getElementById("theLink").style.display="block";
createCookie('wroteIt', 'wroteIt', 1); // 1 day = 24 hours persistence
}
else {
// if cookie found hide the div
document.getElementById("theLink").style.display="none";
}
}
啊哈非常感謝Bartdude的一小部分!我明白你的意思,但是什麼改變呢?在java腳本顯示它之前,css中的display沒有顯示出來嗎? – user3206244
我在CSS中看不到'display:none',並且在HTML中設置的inline'display:block'將反正否決CSS規範...因此,請更改CSS並刪除內聯樣式,這是不好的做法。 –
感謝您的回覆Bartdude!好的,我刪除了內聯顯示none並將它添加到div#theLink css,但是div在Ive單擊關閉按鈕並導航到另一個頁面後仍然顯示。你可以在這裏看到一個例子www.marktoe.co.za – user3206244