Вы можете установить два стиля изображения, оба с одинаковыми размерами.
Одно - обычное цветное изображение, другое - фильтрованное. Настройки должны быть одинаковыми (обрезка и т. Д.), За исключением того, что у них есть фильтр десатурации. Вы можете назвать одну настройку «logo-thumb-normal» и одну «logo-thumb-selected» *
Теперь у вас должно быть два одинаковых выходных изображения, за исключением фильтрации, и они должны иметь одинаковое имя файла, хотя они будут в разных папках.
Установите тип изображения в поле «Изображение», чтобы использовать «logo-thumb-filters».
Итак, когда вы загружаете изображение в тип контента, должно генерироваться два файла, по одному для каждого параметра:
/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'));
}
);
EDIT:
Чтобы включить JQuery в Drupal 7:
Чтобы добавить скрипт выше, вы можете:
Добавьте пользовательский файл 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));