您可以设置两个具有相同尺寸的 ImageStyle。
一个是常规的彩色图像,另一个是过滤后的图像。设置应该是相同的(裁剪等),除了一个有去饱和过滤器。您可以调用一种设置“logo-thumb-normal”和一个“logo-thumb-filtered”
您现在应该有两个相同的输出图像,除了过滤之外,它们应该具有相同的文件名,尽管它们将位于不同的文件夹中。
将您的内容类型图像字段设置为使用“logo-thumb-filtered”。
因此,当您上传内容类型中的图像时,应该生成两个文件,每个设置一个文件:
/sites/default/files/styles/logo-thumb-normal/public/field/image/image.jpg 和
/sites/default/files/styles/logo-thumb-filtered/public/field/image/image.jpg
您可以按照 Spudley 的建议手动参考这两个图像,但更简单的方法可能是使用 jQuery 在悬停时交换图像(这里有一个简单的示例:http://jsfiddle.net/vSUkv/1/):
$('.image1').hover(
function () {
src = $(this).attr('src');
$(this).attr('src', src.replace('filtered', 'normal'));
},
function () {
$(this).attr('src', src.replace('normal', 'filtered'));
}
);
编辑:
在 Drupal 7 中包含 jQuery:
要添加上面的脚本,您可以:
将自定义 JavaScript 文件添加到您的主题中(如果您还没有的话),方法是将行 scripts[] js/custom.js 添加到主题的 info 文件中。
在您的主题中创建js 文件夹,并在该文件夹中创建custom.js 文件。
将以下代码添加到您的 custom.js 文件中:
// We define a function that takes one parameter named $.
(function ($) {
// Store our function as a property of Drupal.behaviors
Drupal.behaviors.imageSwap = {
attach: function (context, settings) {
$('.hplogoclient a img').hover(
function () {
src = $(this).attr('src');
$(this).attr('src', src.replace('filtered', 'normal'));
},
function () {
$(this).attr('src', src.replace('normal', 'filtered'));
}
);
}
}
}(jQuery));