Jquery плавное изменение цвета фона. Плавное изменение цвета фона. Изменение цвета фона элемента

Идея предельно проста и понятна… Предположим, что хотим смену цвета фона страницы при прокрутке каждых 500px от верха. К сожалению найти готовый простой вариант, поддающийся модернизации, не удалось найти. Поэтому совместно с @only_darkangel был написан элементарный вариант:

Сперва подключим библиотеки в head, если они ещё не подключены

Затем пару строк стилей

body {
background: #fff;
height:4000px;
}

Далее скрипт, который и будет менять цвет страницы при прокрутке.
Цифра 400 задаёт скорость смены цвета (0,4 секунды). В самом низу цифра 451 задаёт время проверки положения скролла, данная цифра должна быть всегда больше времени скорости цвета.


window.onload=function(){
setInterval(function(){
var scroll = $(window).scrollTop();
if (scroll == 0) {
$("body").animate({backgroundColor: "white"}, 400); //изначально фон белый
}
if (scroll = 1) {
$("body").animate({backgroundColor: "green"}, 400); //затем если проскроллили от 1 до 500 пикселей, то цвет меняется на зелёный
}
if (scroll = 501) {
$("body").animate({backgroundColor: "red"}, 400); //более 501 пикселей прокрутки от верха цвет смениться на красный
}
if (scroll = 1001) {
$("body").animate({backgroundColor: "blue"}, 400);
}
if (scroll >= 1501) {
$("body").animate({backgroundColor: "yellow"}, 400);
}
}, 451);
}

ДЭМО работы скрипта. Как видим всё предельно просто и понятно, но и в то же время примитивно.

Ещё я нашел вариант более красивый, но и сложный http://jsfiddle.net/jguffey/mxkx9j2o/ , возможно так же пригодится.

Задавайте вопросы в комментах, делитесь статьёй в соц. сетях нажав на соответствующую кнопочку ниже 🙂 Спасибо, что читаете!

Есть ли способ выбрать / манипулировать псевдоэлементами CSS, такими как::before и::after (и старая версия с одной точкой с запятой), используя jQuery?

Например, моя таблица стилей имеет следующее правило:

Span::after{ content:"foo" }

Как я могу изменить «foo» на «bar» с помощью jQuery?

Вы также можете передать содержимое псевдоэлементу атрибуту данных, а затем использовать jQuery для управления этим:

Foo

$("span").hover(function(){ $(this).attr("data-content","bar"); });

Span:after { content: attr(data-content) " any other text you may want"; }

Если вы хотите, чтобы «другой текст» не отображался, вы могли бы объединить это с решением seucolega следующим образом:

Foo

$("span").hover(function(){ $(this).addClass("change").attr("data-content","bar"); });

Span.change:after { content: attr(data-content) " any other text you may want"; }

Это непрактично, поскольку я не писал это для использования в реальном мире, просто чтобы дать вам пример того, что может быть достигнуто.

Css = { before: function(elem,attr){ if($("#cust_style") !== undefined){ $("body").append(" "); } else { $("#cust_style").remove(); $("body").append(" " + elem + ":before {" + attr + "} "); } }, after: function(elem,attr){ if($("#cust_style") !== undefined){ $("body").append(" "); } else { $("#cust_style").remove(); $("body").append(" " + elem + ":after {" + attr + "} "); } } }

это добавление в настоящее время добавляет элемент или добавляет элемент Style, который содержит необходимый атрибут, который будет влиять на элемент target после элемента Pseudo.

это можно использовать как

Css.after("someElement"," content: "Test"; position: "absolute"; ") // editing / adding styles to:after

Css.before(...); // to affect the before pseudo element.

как после: и до: псевдоэлементы не доступны непосредственно через DOM, в настоящее время невозможно отредактировать конкретные значения css свободно.

мой путь был всего лишь примером, и он не очень хорош для практики, вы можете изменить его, попробовать некоторые из своих собственных трюков и сделать его правильным для использования в реальном мире.

Так что сделайте собственные эксперименты с этим и другими!

приветствует - Адарш Хедде.

Спасибо всем! мне удалось сделать то, что я хотел: D http://jsfiddle.net/Tfc9j/42/ вот посмотрите

я хотел иметь непрозрачность внешнего div для быть отличным от непрозрачности внутреннего div и это изменение с помощью щелчка где-то еще;) Спасибо!

$("#ena").on("click", function () { $("head").append("#ena:before { opacity:0.3; }"); }); $("#duop").on("click", function (e) { $("head").append("#ena:before { opacity:0.8; }"); e.stopPropagation(); }); #ena{ width:300px; height:300px; border:1px black solid; position:relative; } #duo{ opacity:1; position:absolute; top:50px; width:300px; height:100px; background-color:white; } #ena:before { content: attr(data-before); color: white; cursor: pointer; position: absolute; background-color:red; opacity:0.9; width:100%; height:100%; }

duoyyyyyyyyyyyyyy p

Вы можете создать фальшивое свойство или использовать существующее и наследовать его в таблице стилей псевдоэлемента.

var switched = false; // Enable color switching setInterval(function () { var color = switched ? "red" : "darkred"; var element = document.getElementById("arrow"); element.style.backgroundColor = color; // Managing pseudo-element"s css // using inheritance. element.style.borderLeftColor = color; switched = !switched; }, 1000); .arrow { /* SET FICTIONAL PROPERTY */ border-left-color:red; background-color:red; width:1em; height:1em; display:inline-block; position:relative; } .arrow:after { border-top:1em solid transparent; border-right:1em solid transparent; border-bottom:1em solid transparent; border-left:1em solid transparent; /* INHERIT PROPERTY */ border-left-color:inherit; content:""; width:0; height:0; position:absolute; left:100%; top:-50%; }

Кажется, что это не работает для свойства content: (

Вы не можете выбирать псевдо элементы в jQuery, потому что они не являются частью DOM. Но вы можете добавить определенный класс к элементу отца и управлять его псевдоэлементами в CSS.

$("span").addClass("change");

Span.change:after { content: "bar" }

Хотя они отображаются браузерами через CSS, как если бы они были похожи на другие реальные элементы DOM, сами псевдоэлементы не являются частью DOM, потому что псевдоэлементы, как следует из названия, не являются реальными элементами, и поэтому вы не могут выбирать и манипулировать ими напрямую с помощью jQuery (или любых JavaScript-API, если не на самом деле Selectors API). Это относится к любым псевдоэлементам, стили которых вы пытаетесь модифицировать с помощью скрипта, а не только::before и::after .

Вы можете получать только стили псевдоэлементов непосредственно во время выполнения через CSSOM (думаю, window.getComputedStyle()), который не подвергается jQuery за пределами.css() , метод, который также не поддерживает псевдоэлементы.

Вы всегда можете найти другие пути вокруг него, хотя для Пример:

один рабочий, но не очень эффективный способ - добавить правило в документ с новым контентом и ссылаться на него с классом. в зависимости от того, что необходимо, для класса может потребоваться уникальный идентификатор для каждого значения в содержимом.

$("span.id-after:after{content:bar;}").appendTo($("head")); $("span").addClass("id-after");

Я уже ответил на этот вопрос , но, чтобы быть супер-крутым, я повторюсь для вас.

Ответ должен быть Да & amp; Нет . Вы не можете выбрать элемент с помощью псевдоселектора, но вы можете добавить новое правило в таблицу стилей с помощью javascript.

Я сделал что-то, что должно сработать для вас:

Var addRule = function(sheet, selector, styles) { if (sheet.insertRule) return sheet.insertRule(selector + " {" + styles + "}", sheet.cssRules.length); if (sheet.addRule) return sheet.addRule(selector, styles); }; addRule(document.styleSheets, "body:after", "content: "foo"");

::before

Вычисленный стиль в "before" был content: "VERIFY TO WATCH";

Вот мои две строки jQuery, в которых используется идея добавления дополнительный класс, который специально ссылается на этот элемент, а затем добавляет тег стиля (с важным тегом) для изменения CSS значения содержимого sudo-элемента:

$("span.play:eq(0)").addClass("G");

$("body").append(".G:before{content:"NewText" !important}");

Зачем добавлять классы или атрибуты, когда вы можете просто добавить style в голову

$("head").append(".span:after{ content:"changed content" }")

Здесь много ответов, но никакой ответ не помогает манипулировать css:before или:after , даже не принятым.

Вот как я предлагаю это сделать. Предположим, что ваш HTML выглядит следующим образом:

Test

И затем вы устанавливаете его: раньше в CSS и проектируете его так:

#something:before{ content:"1st"; font-size:20px; color:red; } #something{ content:"1st"; }

Обратите внимание, что я также установил content в самом элементе, чтобы вы могли легко вынести его позже. Теперь есть button щелчок по которому, вы хотите изменить цвет: до зеленого и его размер шрифта до 30 пикселей. Вы можете достичь этого следующим образом:

Определить css с вашим необходимым стилем в каком-то классе.activeS:

ActiveS:before{ color:green !important; font-size:30px !important; }

Теперь вы можете изменить: перед стилем, добавив класс в ваш: перед элементом следующим образом:

Change $("#changeBefore").click(function(){ $("#something").addClass("activeS"); });

Если вы хотите получить контент:before , это можно сделать как:

Get Content $("#getContent").click(function(){ console.log($("#something").css("content"));//will print "1st" });

В конечном счете, если вы хотите динамически изменяйте содержимое:before с помощью jQuery, вы можете достичь этого следующим образом:

Change var newValue = "22";//coming from somewhere var add = "#something:before{content:""+newValue+""!important;}"; $("#changeBefore").click(function(){ $("body").append(add); });

Нажатие на кнопку «changeBefore» изменит:before содержимое #something на «22», что является динамическое значение.

Надеюсь, это поможет

Вот способ доступа: свойства after и: before style, определенные в css:

// Get the color value of .element:before var color = window.getComputedStyle(document.querySelector(".element"), ":before").getPropertyValue("color"); // Get the content value of .element:before var content = window.getComputedStyle(document.querySelector(".element"), ":before").getPropertyValue("content");

$(".span").attr("data-txt", "foo"); $(".span").click(function () { $(this).attr("data-txt","any other text"); }) .span{ } .span:after{ content: attr(data-txt); }

Мы также можем полагаться на пользовательские свойства CSS (переменные) , чтобы манипулировать псевдоэлементом. Мы можем прочитать в спецификации , что:

Пользовательские свойства являются обычными свойствами, поэтому они могут быть объявлены на любом элементе, разрешены с обычным наследованием и каскадными правилами, может быть обусловлено @media и другими условными правилами, может использоваться в атрибуте стиля HTML, может быть прочитан или задан с использованием CSSOM и т. д.

Учитывая это, идея состоит в том, чтобы определить пользовательское свойство внутри элемента и псевдоэлемент просто наследует его; таким образом, мы можем легко изменить его:

1) Использование встроенного стиля:

Box:before { content:"I am a before element"; color:var(--color, red); font-size:25px; }

2) Использование CSS и классы

Box:before { content:"I am a before element"; color:var(--color, red); font-size:25px; } .blue { --color:blue; } .black { --color:black; }

3) Использование javascript

document.querySelectorAll(".box").style.setProperty("--color", "blue"); document.querySelectorAll(".box").style.setProperty("--color", "#f0f"); .box:before { content:"I am a before element"; color:var(--color, red); font-size:25px; }

4) Использование jQuery

$(".box").eq(0).css("--color", "blue"); /* the css() function with custom properties works only with a jQuery vesion >= 3.x with older version we can use style attribute to set the value. Simply pay attention if you already have inline style defined! */ $(".box").eq(1).attr("style","--color:#f0f"); .box:before { content:"I am a before element"; color:var(--color, red); font-size:25px; }

Он также может использоваться со сложными значениями:

Box { --c:"content"; --b:linear-gradient(red,blue); --s:20px; --p:0 15px; } .box:before { content: var(--c); background:var(--b); color:#fff; font-size: calc(2 * var(--s) + 5px); padding:var(--p); }

ЕСЛИ вы хотите полностью управлять элементами:: before или:: after sudo через CSS, вы можете сделать это JS. См. Ниже:

JQuery("head").append(" /* your styles here */ ");

Обратите внимание, что элемент имеет идентификатор, который вы можете использовать для его удаления, и добавьте его снова, если ваш стиль динамически изменяется.

Кстати, ваш элемент точно соответствует вашему желанию с помощью CSS с помощью JS.

Вы можете использовать мой плагин для этой цели.

(function() { $.pseudoElements = { length: 0 }; var setPseudoElement = function(parameters) { if (typeof parameters.argument === "object" || (parameters.argument !== undefined && parameters.property !== undefined)) { for (var element of parameters.elements.get()) { if (!element.pseudoElements) element.pseudoElements = { styleSheet: null, before: { index: null, properties: null }, after: { index: null, properties: null }, id: null }; var selector = (function() { if (element.pseudoElements.id !== null) { if (Number(element.getAttribute("data-pe--id")) !== element.pseudoElements.id) element.setAttribute("data-pe--id", element.pseudoElements.id); return "::" + parameters.pseudoElement; } else { var id = $.pseudoElements.length; $.pseudoElements.length++ element.pseudoElements.id = id; element.setAttribute("data-pe--id", id); return "::" + parameters.pseudoElement; }; })(); if (!element.pseudoElements.styleSheet) { if (document.styleSheets) { element.pseudoElements.styleSheet = document.styleSheets; } else { var styleSheet = document.createElement("style"); document.head.appendChild(styleSheet); element.pseudoElements.styleSheet = styleSheet.sheet; }; }; if (element.pseudoElements.properties && element.pseudoElements.index) { element.pseudoElements.styleSheet.deleteRule(element.pseudoElements.index); }; if (typeof parameters.argument === "object") { parameters.argument = $.extend({}, parameters.argument); if (!element.pseudoElements.properties && !element.pseudoElements.index) { var newIndex = element.pseudoElements.styleSheet.rules.length || element.pseudoElements.styleSheet.cssRules.length || element.pseudoElements.styleSheet.length; element.pseudoElements.index = newIndex; element.pseudoElements.properties = parameters.argument; }; var properties = ""; for (var property in parameters.argument) { if (typeof parameters.argument === "function") element.pseudoElements.properties = parameters.argument(); else element.pseudoElements.properties = parameters.argument; }; for (var property in element.pseudoElements.properties) { properties += property + ": " + element.pseudoElements.properties + " !important; "; }; element.pseudoElements.styleSheet.addRule(selector, properties, element.pseudoElements.index); } else if (parameters.argument !== undefined && parameters.property !== undefined) { if (!element.pseudoElements.properties && !element.pseudoElements.index) { var newIndex = element.pseudoElements.styleSheet.rules.length || element.pseudoElements.styleSheet.cssRules.length || element.pseudoElements.styleSheet.length; element.pseudoElements.index = newIndex; element.pseudoElements.properties = {}; }; if (typeof parameters.property === "function") element.pseudoElements.properties = parameters.property(); else element.pseudoElements.properties = parameters.property; var properties = ""; for (var property in element.pseudoElements.properties) { properties += property + ": " + element.pseudoElements.properties + " !important; "; }; element.pseudoElements.styleSheet.addRule(selector, properties, element.pseudoElements.index); }; }; return $(parameters.elements); } else if (parameters.argument !== undefined && parameters.property === undefined) { var element = $(parameters.elements).get(0); var windowStyle = window.getComputedStyle(element, "::" + parameters.pseudoElement).getPropertyValue(parameters.argument); if (element.pseudoElements) { return $(parameters.elements).get(0).pseudoElements.properties || windowStyle; } else { return windowStyle || null; }; } else { console.error("Invalid values!"); return false; }; }; $.fn.cssBefore = function(argument, property) { return setPseudoElement({ elements: this, pseudoElement: "before", argument: argument, property: property }); }; $.fn.cssAfter = function(argument, property) { return setPseudoElement({ elements: this, pseudoElement: "after", argument: argument, property: property }); }; })(); $(function() { $(".element").cssBefore("content", ""New before!""); }); .element { width: 480px; margin: 0 auto; border: 2px solid red; } .element::before { content: "Old before!"; }

Значения должны быть указаны, как в обычной функции jQuery.css

Кроме того, вы также можете получить значение параметра псевдоэлемента, как в обычной функции jQuery.css:

Console.log($(element).cssBefore(parameter));

(function() { document.pseudoElements = { length: 0 }; var setPseudoElement = function(parameters) { if (typeof parameters.argument === "object" || (parameters.argument !== undefined && parameters.property !== undefined)) { if (!parameters.element.pseudoElements) parameters.element.pseudoElements = { styleSheet: null, before: { index: null, properties: null }, after: { index: null, properties: null }, id: null }; var selector = (function() { if (parameters.element.pseudoElements.id !== null) { if (Number(parameters.element.getAttribute("data-pe--id")) !== parameters.element.pseudoElements.id) parameters.element.setAttribute("data-pe--id", parameters.element.pseudoElements.id); return "::" + parameters.pseudoElement; } else { var id = document.pseudoElements.length; document.pseudoElements.length++ parameters.element.pseudoElements.id = id; parameters.element.setAttribute("data-pe--id", id); return "::" + parameters.pseudoElement; }; })(); if (!parameters.element.pseudoElements.styleSheet) { if (document.styleSheets) { parameters.element.pseudoElements.styleSheet = document.styleSheets; } else { var styleSheet = document.createElement("style"); document.head.appendChild(styleSheet); parameters.element.pseudoElements.styleSheet = styleSheet.sheet; }; }; if (parameters.element.pseudoElements.properties && parameters.element.pseudoElements.index) { parameters.element.pseudoElements.styleSheet.deleteRule(parameters.element.pseudoElements.index); }; if (typeof parameters.argument === "object") { parameters.argument = (function() { var cloneObject = typeof parameters.argument.pop === "function" ? : {}; for (var property in parameters.argument) { cloneObject = parameters.argument; }; return cloneObject; })(); if (!parameters.element.pseudoElements.properties && !parameters.element.pseudoElements.index) { var newIndex = parameters.element.pseudoElements.styleSheet.rules.length || parameters.element.pseudoElements.styleSheet.cssRules.length || parameters.element.pseudoElements.styleSheet.length; parameters.element.pseudoElements.index = newIndex; parameters.element.pseudoElements.properties = parameters.argument; }; var properties = ""; for (var property in parameters.argument) { if (typeof parameters.argument === "function") parameters.element.pseudoElements.properties = parameters.argument(); else parameters.element.pseudoElements.properties = parameters.argument; }; for (var property in parameters.element.pseudoElements.properties) { properties += property + ": " + parameters.element.pseudoElements.properties + " !important; "; }; parameters.element.pseudoElements.styleSheet.addRule(selector, properties, parameters.element.pseudoElements.index); } else if (parameters.argument !== undefined && parameters.property !== undefined) { if (!parameters.element.pseudoElements.properties && !parameters.element.pseudoElements.index) { var newIndex = parameters.element.pseudoElements.styleSheet.rules.length || parameters.element.pseudoElements.styleSheet.cssRules.length || parameters.element.pseudoElements.styleSheet.length; parameters.element.pseudoElements.index = newIndex; parameters.element.pseudoElements.properties = {}; }; if (typeof parameters.property === "function") parameters.element.pseudoElements.properties = parameters.property(); else parameters.element.pseudoElements.properties = parameters.property; var properties = ""; for (var property in parameters.element.pseudoElements.properties) { properties += property + ": " + parameters.element.pseudoElements.properties + " !important; "; }; parameters.element.pseudoElements.styleSheet.addRule(selector, properties, parameters.element.pseudoElements.index); }; } else if (parameters.argument !== undefined && parameters.property === undefined) { var windowStyle = window.getComputedStyle(parameters.element, "::" + parameters.pseudoElement).getPropertyValue(parameters.argument); if (parameters.element.pseudoElements) { return parameters.element.pseudoElements.properties || windowStyle; } else { return windowStyle || null; }; } else { console.error("Invalid values!"); return false; }; }; Object.defineProperty(Element.prototype, "styleBefore", { enumerable: false, value: function(argument, property) { return setPseudoElement({ element: this, pseudoElement: "before", argument: argument, property: property }); } }); Object.defineProperty(Element.prototype, "styleAfter", { enumerable: false, value: function(argument, property) { return setPseudoElement({ element: this, pseudoElement: "after", argument: argument, property: property }); } }); })(); document.querySelector(".element").styleBefore("content", ""New before!""); .element { width: 480px; margin: 0 auto; border: 2px solid red; } .element::before { content: "Old before!"; }

Теперь в моем случае мне нужно было установить высоту элемента before, основанного на высоте другого, и он изменится при изменении размера, поэтому с помощью этого я могу запускать setHeight() каждый раз при изменении размера окна, и он заменит .

Надеюсь, это поможет кому-то, кто застрял в попытке сделать то же самое.

Для динамического изменения свойств в jQuery служит функция animate. Она позволяет задать новое значение -свойства и время, в течении которого произойдет плавное анимированное изменение от старого значения к заданному. Очень мощная функция! Но, как обычно, есть и ложка дегтя.

Проблема

Набор CSS-свойств с которыми работает animate ограничен. Фактически это только те свойства, которые могут принимать числовые значения. В частности, animate не может работать с цветом.

Решение

К счастью, существует плагин, который расширяет возможности animate и делает ее еще мощнее. Прошу любить и жаловать — jQuery.color! С его помощью в список понятных animate CSS-свойств можно добавить , и .

На практике это выглядит так: .

Проверено в:

  • IE 6-8
  • Firefox 3
  • Opera 9.5-10
  • Safari 3
Что качать?
  • jquery.js (55.9 Kb) - библиотека jQuery версии 1.3.2;
  • (3.66 Kb).
Быстрый старт

Подключаем jQuery и плагин:

В CSS явно задаем начальный цвет:

Div{ background-color:#0CF; }

Теперь используем функцию animate, например при наведении мыши:

jQuery(document).ready(function(){ jQuery("div").mouseenter(function () { jQuery(this).animate({ backgroundColor:"#03C", }, 500); }); jQuery("div").mouseleave(function() { jQuery(this).animate({ backgroundColor:"#0CF", }, 500); }); });

А теперь подробнее

Плагин позволяет работать со следующими CSS-свойствами:

Пример: Плюс:
  • применение класса дает более гибкий механизм, чем просто функция animate. Ведь тут мы не ограничены в выборе одновременно меняющихся свойств.
Минус:
  • достаточно «тяжелый» метод — библиотеки прилично весят.
Выводы:

Если требуются более сложные эффекты, чем «тянет» animate, можно использовать эффект switchClass из набора UI. Но если задача ограничивается плавным изменением цвета — применяй более легкий плагин jQuery.color.

JQuery.color делает мою любимую функцию animate еще лучше. Очень понравилось именно то, что он не добавляет никаких лишних классов или id. Просто расширяет множество возможных параметров animate. Юзать всем для создания красивого эффекта плавного изменения цвета!

Есть слой с текстом и кнопка при нажатии на которую нужно поменять цвет текста у этого слоя.

Поменять цвет (jQuery) $(document).ready(function(){ $("#color_change").click(function(){ $("#layer").css("color", "#F00"); }) }); #layer {border:#CCC 1px solid; line-height:1.5; padding:10px 20px; width:800px; margin-top:20px;} Но чтобы вы поняли, откуда возникает это превратное представление людей, порицающих наслаждение и восхваляющих страдания, я раскрою перед вами всю картину и разъясню, что именно говорил этот человек, открывший истину, которого я бы назвал зодчим счастливой жизни. Действительно, никто не отвергает, не презирает, не избегает наслаждений только из-за того, что это наслаждения, но лишь из-за того, что тех, кто не умеет разумно предаваться наслаждениям, постигают великие страдания. Равно как нет никого, кто возлюбил бы, предпочел и возжаждал бы само страдание только за то, что это страдание, а не потому, что иной раз возникают такие обстоятельства, когда страдания и боль приносят некое и немалое наслаждение. Если воспользоваться простейшим примером, то кто из нас стал бы заниматься какими бы то ни было тягостными физическими упражнениями, если бы это не приносило с собой некоей пользы? И кто мог бы по справедливости упрекнуть стремящегося к наслаждению, которое не несло бы с собой никаких неприятностей, или того, кто избегал бы такого страдания, которое не приносило бы с собой никакого наслаждения?

В этом уроке речь пойдет об эффекте, при котором происходит плавная смена фона объекта в результате наведения курсора мыши на него.
В начале, как уже наверно успели привыкнуть (если вы не первый раз используете jQuery библиотеку), подключаем jQuery в нашего сайта.
По мимо самого jQuery , нам понадобиться еще и jQuery UI .

Если вы знакомы с принципами jQuery , то должны помнить, что в хедер мы должны поместить код вызова, в данном случае, анимации смены цвета, чтобы он подгрузился до того, как загрузится основное содержимое страницы. $(document).ready(function() { // поместить ваш код вызова анимации сюда });

HTML

Вот пример разметки html .

Изменение цвета фона элемента Анимация изменения цвета при наведении курсора / PC игры / Portal 2 Portal 2

Оригинальная Portal - вещь уже культовая и неожиданная для своего времени. Она только еще раз подтверждает проверенный веками тезис о торжестве идеи над передовыми технологиями.

CSS

CSS стили оформления нашей странички выглядят так.

Png); text-align:left; color:#333; width:800px; font-size:14px; font-family:georgia, "time new romans", serif; margin:0 auto; padding:0; } a{ color:#333; text-decoration:none } a:focus { outline: none; } h1 { font-size: 34px; font-family: verdana, helvetica, arial, sans-serif; letter-spacing:-2px; color:#394BEA; font-weight:700; padding:20px 0 0; text-shadow:0 1px 1px #70C5ED; } h2 { font-size: 24px; font-family: verdana, helvetica, arial, sans-serif; color:#5C81CB; font-weight: 400; padding: 0 0 10px; text-shadow:0 1px 1px #70C5ED; } h3, h3 a{ font-size:14px; font-family:verdana, helvetica, arial, sans-serif; letter-spacing:-1px; color:#333; font-weight: 700; text-transform:uppercase; margin:0; padding:8px 0 8px 0; } p { color:#333; float:left; line-height:22px; margin:5px; padding:0 0 10px; } #container { margin: 0; padding: 0; } .boxes { background:#fff; border:1px solid #ccc; float:left; padding:10px; position:relative; width:600px; } img { border:5px solid #CCCCCC; } div.info { border-bottom:1px solid #CCCCCC; float:left; margin:0; padding:0; width:100%; } .block { color:#0066CC; float:left; overflow:hidden; position:relative; width:600px; } .block h4, .block h4 a{ color:#333333; font-size:11px; padding:5px 0; text-shadow:0 1px 1px #CEDEFD; text-transform:uppercase; }

JS

DIV элемент имеющий класс .boxes - является элементом, блоком, у которого мы хотим поменять цвет.
Вот этот код мы и будет вызвать в хедере.

$(document).ready(function(){ $(".boxes").hover(function() { $(this).stop().animate({ backgroundColor: "#40B8FE"}, 800); },function() { $(this).stop().animate({ backgroundColor: "#ffffff" }, 800); }); }); В параметрах backgroundColor задается цвет, а значение 800 - это скорость анимации.



Понравилась статья? Поделиться с друзьями: