·设为首页收藏本站📧邮箱修改🎁免费下载专区🔐设置/修改密码👽群雄群聊
返回列表 发布新帖

站长推荐的弹窗实现

185 2
发表于 2022-8-14 10:57:21 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
站点推荐以浮窗的形式显示在帖子内容页面右下角,如果了解了原理,还可以弹出其他内容的窗口,而不仅限于站点推荐。下面简单说一下原理。

1、先找到浮窗的代码,在template\default\common\footer.htm 文件中,找到 id ="sitefocus" 的 div,如下图这段代码主要是将浮窗的结构,其中,第一行代码<!--{eval $focusid =getfocus_rand($_G[basescript]);}-->是使用getfocus_rand函数,获取一个动态的focusid值。我们先来看一下getfocus_rand函数
2、打开source\function\function_core.php文件,找到在这段代码中,最重要的逻辑运算就是判断一个信息是否已经弹出过。这个是通过cookie值来判定,具体到代码实现,就是do-while循环部分。在这个循环中,首先随机获取focus数组中的一个值,然后,来判断cookie中是否有值,如果有值,直接忽略。如果没值,退出循环,准备返回此 focusid ,此后的过程将使用这个值来进行弹出操作。
3、再回到浮窗的代码,
  1. <a href="javascript:;" onclick="setcookie('nofocus_$focusid', 1, $_G['cache']['focus']['cookie']*3600);$('sitefocus').style.display='none'" class="y" title="{lang close}">{lang close}</a>
复制代码
当弹出窗口后,当用户关闭时,为了表示该信息已经弹出过,所以将此条信息的标识写到cookie中,便于在下次的弹出时避免重复。至于窗口的显示与否,完全靠控制 div 的 style 样式来实现。至于信息的内容显示就非常简单了,这里就不再详述了。 在进一步的二次开发中,完全可以利用这个流程,在合适的时间弹出所需要的窗口。


我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

IT618发布Lv.8 发表于 2022-8-14 10:58:10 | 查看全部
感谢分享
我要说一句 收起回复
婷姐Lv.8 发表于 2022-8-14 10:58:28 | 查看全部
收藏一下,以防后患,谢谢分享
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图

您的IP:3.133.133.110,219.151.25.57,GMT+8, 2024-5-17 23:32 , Processed in 0.167956 second(s), 93 queries , Gzip On, Redis On.

Based on Discuz! W1.0 Licensed

© 2001-2024 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表