php - 如何在网站名称上使用 Lettering.js 和 Drupal 7?

标签 php javascript jquery drupal

我正在尝试在我的新 Drupal 7 网站的网站名称上使用 Lettering.js。这是我到目前为止所做的:

  1. 我从 Github 下载文件并将其放在我的主题中名为 scripts 的文件夹中。 (所以它看起来像这样/sites/all/themes/MyThemeName/scripts/jquery.lettering.js)

  2. 然后我使用语法“scripts[] = scripts/jquery.lettering.js”将脚本添加到主题的信息文件中。当我查看页面源代码时,我可以看到正在加载脚本。

我遇到问题的部分是如何调用它。我一直在阅读文档 http://drupal.org/node/171213但我还是很困惑。我假设我应该将调用放在 template.php 中,并且我可以使用 $site_name 来访问站点内的站点名称,但我不确定从那里去哪里。

感谢任何可以提供一些建议的人。

最佳答案

lettering.js 所做的就是将文本拆分成 span。

<p>Hey</p>

成为

<p><span class="char1">H</span><span class="char2">e</span><span class="char3">y</span></p>

详情见源码:https://github.com/davatron5000/Lettering.js/blob/master/jquery.lettering.js

这可以通过预处理函数或在您的模板中使用 PHP 轻松完成:

$chars = str_split($site_name);
$letter_site_name = "";
for($i=0,$count=count($chars);$i<$count;$i++) {
   $letter_site_name = '<span class="char' . ($i+1) . '">' . $chars[$i] . '</span>';
}

无论如何,如果你想使用 lettering.js,你必须编写一个额外的 javascript。 此脚本必须定义一个 Drupal 行为,该行为可能会在所有带有类字母的标题上运行 letteringjs。

(function ($) {
  Drupal.behaviors.headline_lettering = {
    attach:function (context, settings) {
      $("h1.lettering:not(.lettering-attached)", context)
         .addClass('lettering-attached')
         .lettering();
    }
  }
})(jQuery);

关于php - 如何在网站名称上使用 Lettering.js 和 Drupal 7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14136363/

相关文章:

php - 使用 php 在我的数据库中插入记录

javascript - 在同一 Controller 内测试 Angular modalInstance

javascript - 向输入添加样式,但仅在悬停和不活动时

javascript - 使用 JQuery.MSDropDown 更新 selectedIndex 选项菜单

javascript - 如何更改按类迭代的id值

php - mysql_insert_id 使用安全吗?

php - 基于具有空单元格的数据库创建表

javascript - 完成所有ajax请求后如何追加表

javascript - 如果执行,如何在单击后向左滑动完整的 div

jquery 悬停() IE7 和 IE8