悬浮数字的实现
有时候新闻或者消息提示有几条,可以用absolute定位来实现效果。
原理是什么呢?
1.获取数字或者状态。
function getnewscount(){ $time = date("Y-m-d",strtotime("-3 day")); $where["News.checkked = ?"] = array("val"=>1 , "type"=>1); $where["News.UpdateTime >= ?"] = array("val"=>$time,"type"=>1);//'2014-01-10' $news = $this->dao_news->getNews($where); return count($news); } function getstatus($user_id){ $where["lx_messageto.user_id = ?"] = array("val"=>$user_id , "type"=>1); $where["lx_messageto.status = ?"] = array("val"=>1,"type"=>1); $message = $this->dao_message->getMessageTo($where); return count($message); }
2.前端处理显示。用js处理。
<div style="position:absolute;" class="status1"> <!--{if $statusCount neq ""}--> <div class="status_num"> <!--{$statusCount}--> </div> <!--{/if}--> </div> <div style="position:absolute;" class="status2"> <!--{if $newsCount neq ""}--> <div class="status_icon"> <img src="/images/common/new.png"> </div> <!--{/if}--> </div>
css
.status_num{ position:absolute; left:70px; top:0px; background-image: -webkit-gradient(linear, 0 0, 0 bottom, from(rgba(234, 87, 122, 1)), to(rgba(136, 4, 25, 1))); height:30px; line-height:30px; vertical-align:middle; font-family:Verdana, Geneva, sans-serif; color:#fff; font-size:14px;-webkit-border-radius:30px; padding:0px 10px; margin-left:20px; -webkit-box-shadow:1px 1px 3px #999;} .status_icon{ position:absolute; left:70px; top:0px; }
js处理
$(function() { aMess = $("a[href ^= '/message']"); aNews = $("a[href ^= '/news/index']"); var status = $(".status1"); var statusnews = $(".status2"); aNews.prepend(statusnews); aMess.prepend(status); //处理消息的 });
3.或者用ajax获取数据ajax处理
$(function() { if( $("a[href *= '/news/mgr']") != " " ){ aNews = $("a[href *= '/news/mgr']") ; $.ajax({ dataType:'html', type:"POST", url:"/default/index/ajaxgetnewstatus", success:function(msg){ if(msg > 0){ var num = '<div style="position:absolute;" class="status1">' +'<div class="status_num">'+msg+'</div></div>'; aNews.prepend(num);} } }); }; });