首页弹窗打开内容页
在项目中遇到需要在首页弹出内容页效果需求,通过改标签形式比较麻烦(content字段也被限制),看产品是集成了layer.js,使用弹层来实现。
首先把需要弹出板块用到的标签,做一个调整,把<a href="#"> 的链接转存成data-href或者直接删除href="#"值,然后加载onclick="layOpen()",把原先的href="#"值加到括号里面,如下图:
基础布局页里面已经有layer.js,在首页只需要引入layer.js方法(以及基础参数配置):
<script> function layOpen(contentUrl) { layer.open({ type: 2, //选择类型2,弹出iframe层 title: "弹出", //弹出标题可自定义,也可取消 shadeClose: true, // 是否点击遮罩关闭 closeBtn: 1, //右上关闭按钮类型 shade: 0.5, //遮罩层的透明度 area: ['1240px', '90%'], //弹出层的大小 maxmin:true, //是否显示全屏按钮 content: contentUrl, //传入值 }); } </script>
这一步后,就可以点击标签标题链接,弹出完整内容页,但是会包含头尾和其它不需要部分内容。
下一步,通过传参,判断是首页还是频道进入的内容页,给修改成弹出的标签上加上参数值,例如:
这样首页点击弹出的iframe地址就是文章地址加?showheader=0这个路径。在内容页模板上,把header、footer等板块,用css默认隐藏,并增加正则传参。
<style> #footer,#header,.path { display:none;} </style>
<script> var url = location.href; function queryURLParams(url) { let pattern = /(\w+)=(\w+)/ig; let parames = {}; url.replace(pattern, ($, $1, $2) => { parames[$1] = $2; }) return parames; } var flag = queryURLParams(url)["showheader"]; if(flag && flag == 0){ $("#header,.path,.userControl,.others,.commentForm,#footer").hide(); } else { $("#header,.path,.userControl,.others,.commentForm,#footer").show(); } </script>
内容地址没有带?showheader=0的情况下,正常显示头尾,首页效果如下,只显示对应的内容区块:
用户登录
还没有账号?
立即注册