<a href="#">
<div class="a1">
<div class="a2"></div>
</div>
</a>
Блок а1 размером 300х200, background которого это картинка. В блоке а2 тоже на background'е полупрозрачная картинка шириной в 2 раза больше то есть 600х200 спозицианирована right top, как сделать чтобы при наведении картинка плавно смещалась влево, то есть у блока а2 у background'а картинка позицианировалась как left top, по плавно(анимационно). Подскажите как. Желательно бы пример с коментами, чтоб по понятней было на будущее.
UPD Появилась новая идея, думаю куда проще будет её реализовать. теперь прото блок a1 с картинкой на бэкграунде. Как сделать чтобы он затемнялся плавно, ну то есть при наведении как бы плёнкой чёрной полупрозрачной накрывало
Спустя 10 минут, 51 секунда (6.04.2012 - 20:37) nugle написал(а):
ты чето путаешь, 1 блок не может быть меньше дочернего
Спустя 59 секунд (6.04.2012 - 20:38) Игорь_Vasinsky написал(а):
animate() with Jquery
Спустя 16 минут, 10 секунд (6.04.2012 - 20:54) razoramus написал(а):
Цитата (razoramus @ 6.04.2012 - 17:26) |
ты чето путаешь, 1 блок не может быть меньше дочернего |
Имеется ввиду что а2 тоже 300 но картинка 600 и спозицианирована right top.
------
Тему обновил
Спустя 6 минут, 41 секунда (6.04.2012 - 21:01) Игорь_Vasinsky написал(а):
Спустя 1 минута, 44 секунды (6.04.2012 - 21:02) nugle написал(а):
razoramus
за прозрачность отвечает свойство opacity, если черной пленкой, то поверх вешай черный блок и св-во opacity
за прозрачность отвечает свойство opacity, если черной пленкой, то поверх вешай черный блок и св-во opacity
Спустя 50 секунд (6.04.2012 - 21:03) bodja написал(а):
//вешаем событие "наведение мыши" на 1 елемент див с классом а2
//и вызываем функцию funLeft();
document.getElementsByClassName('a2')[0].onmouseover=function(){
funLeft();
}
//здесь начальное значение,переменная глобальна.
var left=0;
//замкнутая функция на себя с помощью setTimeout ,вызывается через каждые 20мс
//пока left не достигнет 600,
//значение left с шагом в 5 также заносится в style.backgroundPosition.
function funLeft() {
left+=5;
document.getElementsByClassName('a2')[0].style.backgroundPosition = left+'px 0px';
if (left<600){setTimeout(funLeft,20);}
}
Вот и все ,скрипт не проверял ,но по идее должен работать.
Вешать событие только после инициализации нужного елемента в ДОМ.
или так.
<div class="a2" onMouseOver="funLeft()"></div>
Спустя 11 минут, 8 секунд (6.04.2012 - 21:14) bodja написал(а):
Цитата |
Появилась новая идея, думаю куда проще будет её реализовать. теперь прото блок a1 с картинкой на бэкграунде. Как сделать чтобы он затемнялся плавно, ну то есть при наведении как бы плёнкой чёрной полупрозрачной накрывало |
Да вам не угодиш,а реализовать будет на самом деле немного сложнее.

Спустя 8 минут, 11 секунд (6.04.2012 - 21:23) razoramus написал(а):
Цитата (bodja @ 6.04.2012 - 18:03) |
Да вам не угодиш,а реализовать будет на самом деле немного сложнее. |

Спустя 22 минуты, 29 секунд (6.04.2012 - 21:45) bodja написал(а):
У стилей нет свойства затемнения ,тем более для картинки фона,значит нужно накладывать еще один див с черным фоном и работать через style.opacity
ИЕ opacity непонимает поэтому прийдется для него сделать вот так
где opac это значение прозрачности от 0 до 100,
так же стоит помнить что для остальных браузеров максимальное значение прозрачности это 1
значит делаем так
все это заворачиваете в цикл и пользуетесь,я думаю уже расписывать нет нужды.
ИЕ opacity непонимает поэтому прийдется для него сделать вот так
style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+opac+')';
где opac это значение прозрачности от 0 до 100,
так же стоит помнить что для остальных браузеров максимальное значение прозрачности это 1
значит делаем так
style.opacity=opac/100;
все это заворачиваете в цикл и пользуетесь,я думаю уже расписывать нет нужды.
Спустя 15 минут, 7 секунд (6.04.2012 - 22:00) razoramus написал(а):
Накидал..
А куда style.opacity=opac/100; впихнуть? Вроди правильно накидал.. И как сделать плавно? Просто в JS не знаю. Руки ещё не дошли
<a href="#">
<div class="img">
<div class="shadow"></div>
</div>
</a>
.img {
width:300px;
height:200px;
background:url(./132.png) left top no-repeat;
}
.shadow {
width:300px;
height:200px;
background:#000;
opacity:0;
}
.shadow:hover {
opacity:0.8;
}
А куда style.opacity=opac/100; впихнуть? Вроди правильно накидал.. И как сделать плавно? Просто в JS не знаю. Руки ещё не дошли
Спустя 11 минут, 46 секунд (6.04.2012 - 22:12) bodja написал(а):
Цитата |
А куда style.opacity=opac/100; впихнуть? |
В скрипт ;)
На следующий подобный вопрос ,пошлю учить маны.
<div class="shadow" onMouseOver="funOpac()"></div>
var opac=0;
function funOpac() {
opac+=1;
document.getElementsByClassName('shadow')[0].style.opacity= opac/100;
if (opac<50){setTimeout(funOpac,20);}
}
Спустя 5 минут, 59 секунд (6.04.2012 - 22:18) razoramus написал(а):
Цитата (bodja @ 6.04.2012 - 19:12) | ||
В скрипт ;) На следующий подобный вопрос ,пошлю учить маны. <div class="shadow" onMouseOver="funOpac()"></div> |
Это чтобы в IE работало?
А анимацию как сделать?
Спустя 8 минут, 26 секунд (6.04.2012 - 22:26) Игорь_Vasinsky написал(а):
анимация
if (opac<50){setTimeout(funOpac,20);}
Спустя 13 минут, 52 секунды (6.04.2012 - 22:40) razoramus написал(а):
Решил сделать так, сделать в фотошопе полупрозрачную картинку чёрного цвета под размер и в бэкграунд прописал, потом порыскал про плавное исменение прозрачности любого эллемента на JQ, в обще вот код, подправил под себя и всё робит, мало ли кому пригодиться. Проверял в IE7+ Всё ок
Всем спасибо
//jQuery прозрачность любого элемента
$(document).ready(function(){
$('.shadow').each(function(){
$(this).animate({opacity:'0.0'},1);
$(this).mouseover(function(){
$(this).stop().animate({opacity:'1.0'},300);
});
$(this).mouseout(function(){
$(this).stop().animate({opacity:'0.0'},300);
});
});
});
Всем спасибо
Спустя 2 часа, 52 минуты, 54 секунды (7.04.2012 - 01:33) sebastjan написал(а):
Прозрачность по разному поддерживают броузеры, ИЕ имеет фильтры другие через opacity: если не изменяет память.
На мой взгляд легче применить БГ фон ПНГ с прозрачностью и кросброузерностью и ЯваСкрипт.
Хотя и первое и второе на мой взгляд это отглосы прошлых эпох.
Что то затемнить чтоб что то показать, ну и бесят эти закорючки многих.
Фишка не понятная юзеру.
Сколько не спрашивал юзеров, ни кто вразумительного ответа не дал, хорошо или плохо.
А значит хреново......
На мой взгляд легче применить БГ фон ПНГ с прозрачностью и кросброузерностью и ЯваСкрипт.
Хотя и первое и второе на мой взгляд это отглосы прошлых эпох.
Что то затемнить чтоб что то показать, ну и бесят эти закорючки многих.
Фишка не понятная юзеру.
Сколько не спрашивал юзеров, ни кто вразумительного ответа не дал, хорошо или плохо.
А значит хреново......
Спустя 1 час, 8 минут, 32 секунды (7.04.2012 - 02:42) bodja написал(а):
Кто людям помогааааает,тот тратит время зря... (Шапокляк).



Спустя 34 минуты, 35 секунд (7.04.2012 - 03:16) razoramus написал(а):
Цитата (sebastjan @ 6.04.2012 - 22:33) |
Прозрачность по разному поддерживают броузеры, ИЕ имеет фильтры другие через opacity: если не изменяет память. На мой взгляд легче применить БГ фон ПНГ с прозрачностью и кросброузерностью и ЯваСкрипт. Хотя и первое и второе на мой взгляд это отглосы прошлых эпох. Что то затемнить чтоб что то показать, ну и бесят эти закорючки многих. Фишка не понятная юзеру. Сколько не спрашивал юзеров, ни кто вразумительного ответа не дал, хорошо или плохо. А значит хреново...... |
На данный момент у меня бало жедание сделать затенение не просто мнгновенным, а приятно смотрящееся плавное затемнение. Первый раз такой "фигнёй" занимался. Обычно просто поставил и не марочишься, кому какая разнича как у меня кнопка/ссылка подсвечивается, главное контент и информация в нём чтобы была полезна пользователю. А тут это я делаю сайт-портфолио, и ну как то чтобы смотрелось вот..
Спустя 3 часа, 9 минут, 19 секунд (7.04.2012 - 06:26) I++ написал(а):
Этот код использует обычную смену позиции div? или канвасы рисует? Если див двигает, это будет лагать на нетбуках возможно.
Спустя 5 часов, 56 минут, 14 секунд (7.04.2012 - 12:22) sebastjan написал(а):
razoramus
Ниже скзали про смену позиций див.
Я бы уточнил, берш три дива с разной прозрачностьюПНГ фоном, естественно прикручиваешь заглушку ЦСС чтоб в ИЕ работала прозрачность.
Дивы анимируешь яваскрипт, пару строчек всего.
И будет у тебя плавное затемнение.
Ниже скзали про смену позиций див.
Я бы уточнил, берш три дива с разной прозрачностьюПНГ фоном, естественно прикручиваешь заглушку ЦСС чтоб в ИЕ работала прозрачность.
Дивы анимируешь яваскрипт, пару строчек всего.
И будет у тебя плавное затемнение.
Спустя 5 часов, 14 минут, 29 секунд (7.04.2012 - 17:36) razoramus написал(а):
I++
В head цепанул библиотеку jq и применил вышеуказанный код. Он меняет прозрачность блока shadow с 0 до 0.5(в моём случае). у меня на бэкграунде блока img стоит картинка и в shadow так же(только чёрная). Думаю смысл понятен. Проверят в ie начиная с 7го, вроди всё норм, за исключением курсора, при наведении он остаётся стрелкой а не pointer. Меня это как то не задевает.
В head цепанул библиотеку jq и применил вышеуказанный код. Он меняет прозрачность блока shadow с 0 до 0.5(в моём случае). у меня на бэкграунде блока img стоит картинка и в shadow так же(только чёрная). Думаю смысл понятен. Проверят в ie начиная с 7го, вроди всё норм, за исключением курсора, при наведении он остаётся стрелкой а не pointer. Меня это как то не задевает.