给网站添加一个活动倒计时效果 线报活动结束提示效果

因为考虑到大家一些网站没有使用jq,或者jq版本低之类,所以使用原生来实现效果,这样任何网站都是可以使用。

效果如下图所示:

1.png

如果活动没结束,那么显示距离结束时间,为绿色,如果到期了,那么显示 活动已经结束,为红色提示。

下方是对应html和js代码

将html代码span标签中的时间修改为到期时间,格式一定要正确,例如 2018-08-08 24:00:00 ,并放置需要显示的地方。

将js代码,放置公共js中,或者其他只要引入的js文件中即可。

  1. <span id="ActivityDate">2020-05-08 24:00:00</span>
  2. <script>
  3. // 获取id
  4. var ActivityDate = document.getElementById("ActivityDate");
  5. function timepiece(key){
  6. var datatime = /^[\d]{4}-[\d]{1,2}-[\d]{1,2}( [\d]{1,2}:[\d]{1,2}(:[\d]{1,2})?)?$/ig,str='',s;
  7. // 正则验证日期格式是否正确
  8. if(!key.match(datatime)){
  9. console.log('日期参数错误,请按格式填写,如 1996-10-22 24:00:00');
  10. return
  11. }
  12. // 当前日期减去活动日期,判断是否超出
  13. var sec = (new Date(key.replace(/-/ig,'/')).getTime() - new Date().getTime())/1000;
  14. if(sec < 0){
  15. ActivityDate.innerHTML = "<span style=" + "color:red;" + ">" + "本活动已经结束" + "</span>";
  16. return
  17. }
  18. s = {
  19. '天':sec/24/3600,
  20. '时':sec/3600%24,
  21. '分':sec/60%60,
  22. '秒':sec%60
  23. }
  24. for(i in s){
  25. if(Math.floor(s[i]) > 0) str += Math.floor(s[i]) + i;
  26. }
  27. if(Math.floor(sec) == 0){
  28. str='0秒';
  29. }
  30. // 距离活动结束时间显示到页面
  31. ActivityDate.innerHTML = "<span style=" + "color:#4ad564;" + ">" + "本活动还有" + str + "结束" + "</span>";
  32. // 每隔1秒更新一次
  33. setTimeout(function(){
  34. timepiece(key)
  35. },1000)
  36. }
  37. timepiece(ActivityDate.innerHTML);
  38. </script>

对于样式,没做什么美化,后期有空会更新美化版。

文章来源:http://www.iqzhan.com/post/122.html

文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/299
0 评论
3k

发表评论

!