Вы можете сделать это, используя этот плагин цветной анимации Jquery . Конечно, это предполагает, что вы используете Jquery. Если ваши навыки работы с JavaScript не так сильны, как хотелось бы, jQuery - хорошее место для начала. Не поймите меня неправильно, это не заменит изучение чистого javascript, но оно многое для вас делает.
Цветовая анимация, основанная на плагине цветовой анимации Джона Резига, но добавляет поддержку rgba, чтобы вы могли иметь свою прозрачность. Вы также можете анимировать текст и границы цветов.
Чтобы получить идентификатор фотографии из строки запроса, вы можете использовать функцию, подобную этой (которую я нашел в SO здесь ), но я лично считаю аргумент def
(по умолчанию) полезным когда я хочу установить возвращаемое значение автоматически, когда name
не найден в строке запроса:
function getParameterByName(name, def) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)",
regex = new RegExp(regexS),
results = regex.exec(window.location.href);
if(results == null)
return def;
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
Поместите это где-нибудь в теге скрипта. Затем, чтобы получить ваш параметр и прошить его, поместите его туда, где вам нужно (например, тег head
). Здесь я предполагаю, что вы хотите сделать это в documentReady (когда загружены DOM-элементы страницы), но вы также можете немного задержать его, или подождать, пока наведите курсор, или какое-то другое событие .:
$(document).ready(function() {
var flashDiv = getParameterByName("photoID", false);
if(flashDiv!==false) {
$("#"+flashDiv).animate({backgroundColor: '#19426E'}, 2000);
$("#"+flashDiv).animate({backgroundColor: 'rgba(0,0,0,0)'}, 2000);
}
});
Если вы хотите отложить эти 2 секунды после загрузки страницы:
$(document).ready(function() {
var flashDiv = getParameterByName("photoID", false);
if(flashDiv!==false) {
setTimeout(function() {
$("#"+flashDiv).animate({backgroundColor: '#19426E'}, 2000);
$("#"+flashDiv).animate({backgroundColor: 'rgba(0,0,0,0)'}, 2000);
}, 2000);
}
});
И если вы хотите подождать, пока пользователь не проведет мышку над этим (но только один раз):
$(document).ready(function() {
var flashDiv = getParameterByName("photoID", false);
if(flashDiv!==false && !flashed) {
$("#"+flashDiv).one("mouseover", function() {
$(this).animate({backgroundColor: '#19426E'}, 2000);
$(this).animate({backgroundColor: 'rgba(0,0,0,0)'}, 2000);
});
}
});
Обновление после комментария:
Получение вашего фотоидентификатора после # еще проще (вам, конечно, не понадобится функция getParameterByName
):
$(document).ready(function() {
var photoId = document.location.href.split("#")[1];
if(photoId!==undefined) {
$("#"+photoId).animate({backgroundColor: '#19426E'}, 2000);
$("#"+photoId).animate({backgroundColor: 'rgba(0,0,0,0)'}, 2000);
}
});