CSS background-изменение положения только по оси Y
Ok...так вот в чем проблема.
У меня есть изображение спрайта CSS, состоящее из десяти(10) значков 25px x 25px, выложенных горизонтально, что приводит к изображению спрайта шириной 250px.
Я использую эти 25х25 картинок. Я ищу, чтобы иметь непрозрачность 30% на этих изображениях в первоначальном виде, и когда пользователь парит над ними, непрозрачность должна быть 100% (1).
Итак, я создал вторую строку изображений с их непрозрачностью в 30% - так что теперь я имейте изображение спрайта 250px x 50px. Верхний 25px на 100% и Нижний 25px на 30%.
я настраиваю HTML следующим образом:
<a href="largeimage1.jpg" class="thumb1"></a>
<a href="largeimage2.jpg" class="thumb1"></a>
<a href="largeimage2.jpg" class="thumb1"></a>
etc...
и CSS:
a { display: block; float: left; width: 25px; height: 25px; background: url("250_x_50_spriteimage.jpg") 0 -25px no-repeat; }
.thumb1 { background-position: 0 0; }
.thumb2 { background-position: -25px 0; }
.thumb3 { background-position: -50px 0; }
a:hover { **background-position-y**: -25px; }
однако это, похоже, не работает, к сожалению, поскольку background-position-y не поддерживается в Firefox (или не является стандартным, но специфичным для IE).
идея в том, что мы (только) хотим сдвинуть изображение спрайта вверх (вдоль оси y) и оставить ось x как есть (или была установлена в предыдущем учебные занятия.)
Если нет простого решения CSS для этого-может ли этот эффект непрозрачности быть сделан с помощью JQUERY? Таким образом, большие пальцы будут загружаться с непрозрачностью 30% и переходить на непрозрачность 100%, когда пользователь зависает?
большое спасибо,
м.
5 ответов
вам не нужен второй набор значков или использование JavaScript для достижения желаемого эффекта.
как указал Лу, используйте opacity
чтобы сделать ваши значки 30% или полностью видимыми. Нет необходимости возиться с
Я считаю, что ответ Лу делает то, что вы хотите, чтобы он сделал-вам просто нужно определить класс для каждого состояния и установить координаты x и y.
Если вы хотели эффект потертости, то библиотека jQuery дает вам способ сделать это. Это, вероятно, может дать вам то, что вы хотите, если это так:
$(".thumb").css("opacity", 0.33);
$(".thumb").hover(
function() {
$(this).fadeTo(300, 1.0);
},
function() {
$(this).fadeTo(1, 0.33);
}
);
редактировать: обновлено на основе обратной связи. Начальная непрозрачность теперь установлена.
простой способ
{background-position:100% 4px;}
вы можете использовать происхождение с pixel для замены свойства background-position-y
это имеет какое-либо отношение?
--
У вас есть только 10 изображений, просто определите класс css для каждого из них. Таким образом, вы можете указать относительный х коорд.
ps. Я надеюсь, что вы не используете этот точный css, применяя этот стиль к a:hover будет применяться ко всем ссылкам на странице. Вы должны применять его только образ стиль.
a { display: block;
float: left;
width: 25px;
height: 25px;
background: url("test.jpg") 0 -25px no-repeat;
}
.thumb1 { background-position: 0 0; }
.thumb2 { background-position: -25px 0; }
.thumb3 { background-position: -50px 0; }
.thumb1:hover { background-position: 0 -25px; }
.thumb2:hover { background-position: -25px -25px; }
.thumb3:hover { background-position: -50px -25px; }
появилась непрозрачность..
некоторые небольшие упущения, опечатки и ненужный код в предыдущем примере. Думаю, ваш код может выглядеть примерно так:
<style>
a { float: left; width: 25px; height: 25px; background-image: url("250_x_50_spriteimage.jpg"); }
a.thumb1 { background-position: 0 0; }
a.thumb2 { background-position: -25px 0; }
a.thumb3 { background-position: -50px 0; }
a { filter: alpha(opacity=30); -moz-opacity:.3; opacity:.3; }
a:hover { filter: alpha(opacity=100); -moz-opacity:1.0; opacity:1.0; }
</style>
<a href="largeimage1.jpg" class="thumb1"></a>
<a href="largeimage2.jpg" class="thumb2"></a>
<a href="largeimage2.jpg" class="thumb3"></a>