可以在一小时内向访问者显示页面标题中的div吗?
我想展示一个向访客显示我们是开放还是关闭的栏。 “访客A”应该在他加载的每个第一页上看到它,而不是在下一页上看到它。应该在30分钟内再次向他展示。
我正在我的网站上运行jquery 1.10.2。
感谢您的想法
答案 0 :(得分:0)
假设你的div有id="specialContent"
,这样的话(在文档加载之后,在你的$(document).ready(function() { ... } );
或其他任何地方)都可以做到这一点......
function showSpecialContent() {
$('#specialContent').show();
setTimeout(hideSpecialContent, 1000*30); // show the content for 30 seconds, then hide it
document.cookie = "lastshown=" + Date.now();
}
function hideSpecialContent() {
$('#specialContent').hide();
setTimeout(showSpecialContent, 1000*60*60); // hide the content, and then show it again in an hour
}
function initTimers() {
var lastShown = getCookie("lastshown");
if(lastShown) {
var lsd = new Date(new Number(lastShown));
var timeShownDelta = Date.now() - lsd;
// if we last showed the div more than an hour ago
if (timeShownDelta > 60*60*1000) {
showSpecialContent();
} else {
setTimeout(showSpecialContent, 1000*60*60 - timeShownDelta);
}
} else {
showSpecialContent();
}
}
function getCookie(cname) {
var name = cname + "=";
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);
if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
}
return "";
}
initTimers();
和更新的小提琴:http://jsfiddle.net/vj2dqqyr/4/
答案 1 :(得分:0)
您可以这样做:
小提琴:http://jsfiddle.net/fns6e7yc/1/
<div id='showOnceAnHour' style='display: none'>
Something to show
</div>
在你的剧本中:
$(document).ready(function() {
setInterval(function() {
$("#showOnceAnHour").fadeIn().delay(10000).fadeOut();
}, 60*60*1000);
});
答案 2 :(得分:0)
你可以使用cookies,设置一个持续一个小时的cookie,然后用你的代码做一些检查:
div
,创建Cookie并使其持续一小时我不认为你可以直接用jQuery处理cookie,但是有一些插件可用。或者,您可以使用服务器端编程语言,例如PHP。
这取决于你想要展示的内容。如果它只是一个广告或提醒(例如:看看我们的圣诞促销),那么您可以在每个小时显示它。在你的jQuery脚本中,检查时间,如果它是&#34; round&#34;小时(不知道该怎么说)比如7:00,8:00或其他东西,显示div
,然后在一分钟后隐藏它等等。
<?php
if(!isset($_COOKIE['yourCookie']))
{
//Set the cookie
setcookie("yourCookie", "open", time() + 3600); //Expires in an hour
echo '<div class="open">We are open!</div>';
}
?>
当您重新加载页面时,Cookie将存在,因此div
将不会显示。一小时后,cookie将被删除,因此下次用户刷新页面时将显示该cookie,并且将再次设置cookie。
服务器端解决方案的缺点是,除非用户在一小时后刷新页面,否则在一小时之后就不会像使用Javascript一样显示。
修改您必须在输出任何HTML之前设置Cookie ,否则会失败!确保设置cookie的说明在代码中的任何HTML之前。