»

关于文章目录插件wpjam-toc锚点定位位置的代码修改

    WordPress网站建设网络知识  
插件wordpress

写一篇文章,尤其是长篇文章,需要层次分明,如果没有一个很好的目录的话,很容易让人看晕过去,所以在写文章的时候一定要哟孤儿层次,最好设定一个目录给大家看。这样做可以一目了然。如果给目录设置锚点,就可以做到“点哪打哪”,精确定位文章各部分。今天给大家推荐的是一款目录插件,名字叫 wpjam-toc ,大家可以去这个网站下载:https://blog.wpjam.com/project/wpjam-toc/ 。

优点我就不多说啦,说说一些不是问题的问题:关于锚点跳转的问题。

如果你的网站设置了全站链接点击后在新页面打开,那么你用这款插件会很郁闷:因为点击标题目录的时候会新打开一个页面,然后新页面中再定位到相应的锚点,这样很不利于阅读。而你又不想把全站中的超链接在“新页面打开”这种设置停掉,那么你需要修改一下原来插件的代码,具体如下。

1. wpjam-toc 插件后台代码设置

在后台 wpjam-toc 插件设置中添加:

Code   ViewPrint
  1. <span style="color: #3366ff;">jQuery("#toc a").attr("target","_self");</span>

这段代码,意思是设置不在新标签页面打开:

Code   ViewPrint
  1. jQuery(document).ready(function(){
  2.  jQuery("#toc a").attr("target","_self"); //设置不在新标签页面打开
  3.  jQuery('#toc span').on('click',function(){
  4.  if(jQuery('#toc span').html() == '[显示]'){
  5.  jQuery('#toc span').html('[隐藏]');
  6.  }else{
  7.  jQuery('#toc span').html('[显示]');
  8.  }
  9.  jQuery('#toc ul').toggle();
  10.  jQuery('#toc small').toggle();
  11.  });
  12. });

 

2. 锚点位置下移设置

设置完成以后,经过多个浏览器测试,还存在一个小问题:可能在跳到锚点的时候,定位在电脑屏幕页面的最上方,如果有菜单跟随的网页,那么正好遮盖住锚点标题。这个问题需要更改一下style.css和源文件代码。

在主题style.css中,为文章的超链接target 设置padding-top值,一般200px就够了:padding-top:200px 。意思是说让锚点往下移动200px,这样定位到锚点时就不顶着屏幕最上方了。不同主题有不同的padding-top样式,具体在sytle.css文件的哪里,需要自己去超链接设置里面找一下,如果没有的话,手动添加上。

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

3. wpjam-toc 插件文件的修改

上面的padding-top设置完成以后,并不是所有的浏览器都支持(name 和 id 还是有区别的),需要进一步设置才能看出效果:将插件文件中的wpjam-toc.php 文件代码:

Code   ViewPrint
  1. return "&lt;h{$content[1]} {$content[2]}&gt;&lt;a name=\"toc-{$toc_count}\"&gt;&lt;/a&gt;{$content[3]}&lt;/h{$content[1]}&gt;";

 

中的name 换成id,即:

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

Code   ViewPrint
  1. return "&lt;h{$content[1]} {$content[2]}&gt;&lt;a id=\"toc-{$toc_count}\"&gt;&lt;/a&gt;{$content[3]}&lt;/h{$content[1]}&gt;";

 

或者同时使用 name 和 id:

Code   ViewPrint
  1. return "&lt;h{$content[1]} {$content[2]}&gt;&lt;a id=\"toc-{$toc_count}\" name=\"toc-{$toc_count}\"&gt;&lt;/a&gt;{$content[3]}&lt;/h{$content[1]}&gt;";

虽然讲name 换成id不能保证所有的浏览器最后效果都能显现出来,但很多浏览器都能按照原来的意图展现出效果了。

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 1778字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →