[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Имитация hover элемента
RCuPeR
В общем так. Есть html страница, на ней есть 3 блока:
1. Див1.
2. Див2.
3. Текст.

Интересность заключается в том, что если произвести hover на Див1 определенная область текста остается такой же, а весь остальной текст затухает, точнее затухает вся страница, окромя указанной ранее части текста.
Та же ситуация и с Див2.

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

Вот ссылка для наглядности (не спам). JS код доступен из соурса.



Спустя 8 минут, 29 секунд (1.12.2011 - 18:52) m4a1fox написал(а):
Ну так можно использовать js. Вешаешь mouseover на див, а на что надо чтоб исчезало opacity. Потом при наведении на див, применяется рпасити и текст исчезает!

Спустя 2 минуты, 18 секунд (1.12.2011 - 18:55) RCuPeR написал(а):
Цитата (m4a1fox @ 1.12.2011 - 15:52)
Ну так можно использовать js. Вешаешь mouseover на див, а на что надо чтоб исчезало opacity. Потом при наведении на див, применяется рпасити и текст исчезает!

Ты читал что выше написано ?
Это уже и так есть.
Нужно, что бы не при ховере происходило затухание, а при загрузке страницы.

Спустя 5 минут, 59 секунд (1.12.2011 - 19:01) Winston написал(а):
window.onload = function(){
// Вызываешь ф-ю которая прячет текст
}

Спустя 17 секунд (1.12.2011 - 19:01) m4a1fox написал(а):
Не понимаю! То есть во время процесса загрузки страницы? А когда полность загрузилась, то затухание уходит?

Спустя 2 минуты, 55 секунд (1.12.2011 - 19:04) RCuPeR написал(а):
Цитата (Winston @ 1.12.2011 - 16:01)
window.onload = function(){
// Вызываешь ф-ю которая прячет текст
}

Да нет, тут одним онлоадом не обойтись, пробовал, не хочет.


$(function() {
/*
the menu list element,
the container and content divs
*/

var $menu = $('#menu'),
$container = $('#container'),
$content = $container.find('.content');

/*
lets add the classes effect, e-fade, and e-color to some elements.
e-fade : this will decrease the opacity of the element
e-color: this will change the color of the element
*/

$content
.find('p')
.
addClass('effect e-fade')
.
end()
.
find('h1, h2, h3')
.
addClass('effect e-fade e-color');

/*
elems is all the elements with class effect.
overlayEffect is our function / module that will take care of the animations
*/

var $elems = $(document).find('.effect'),
OverlayEffect = (function(){
//speed for animations
var speed = 1000,
//the event that triggers the effect
eventOff = 'mouseenter',
//the event that stops the effect
eventOn = 'mouseleave',
//this is the color that the elements will have after eventOff
colorOff = '#AAAAAA',
//saves the original color of each e-color element,
//and calls the methos to initialize the events

init = function() {
$elems.each(function(){
var $el = $(this);
if($el.hasClass('e-color'))
$el.data('original-color',$el.css('color'));
});
initEventsHandler();
},
//initializes the events eventOff / eventOn
initEventsHandler = function() {
$menu
.delegate('div',eventOff,function(e){
//relation is the id of the element,
//and the class of related elements

var relation = $(this).attr('id');
animateElems('off',relation);
return false;
})
.
delegate('div',eventOn,function(e){
var relation = $(this).attr('id');
animateElems('on',relation);
return false;
});
},
//animates the color and / or opacity
animateElems = function(dir,relation) {
var $e = $elems;

switch(dir){
case 'on' :
//if there are elements on the page with class = relation
//then these elements will be excluded for the animation

if(relation)
$e = $elems.not('.'+relation);

$e.each(function(){
var $el = $(this),
color = $el.data('original-color'),
param = {};

if($el.hasClass('e-color'))
param.color = color;
if($el.hasClass('e-fade'))
param.opacity = 1;

$el.stop().animate(param,speed);
});

break;
case 'off' :
if(relation)
$e = $elems.not('.'+relation);

$e.each(function(){
var $el = $(this),
param = {};

if($el.hasClass('e-color'))
param.color = colorOff;
if($el.hasClass('e-fade'))
param.opacity = 0.1;

$el.stop().animate(param,speed);
});

break;
}
}
;

return {
init : init
};
})();

/*
call the init method of OverlayEffect
*/

OverlayEffect.init();
});

Спустя 44 секунды (1.12.2011 - 19:05) RCuPeR написал(а):
Цитата (m4a1fox @ 1.12.2011 - 16:01)
Не понимаю! То есть во время процесса загрузки страницы? А когда полность загрузилась, то затухание уходит?

Забей wink.gif

Спустя 8 минут, 29 секунд (1.12.2011 - 19:13) Dezigo написал(а):
Используйте для этого trigger('hover');

$(document).ready(function() {
$('#div1).trigger('hover');
});

Спустя 9 минут, 7 секунд (1.12.2011 - 19:22) RCuPeR написал(а):
Цитата (Dezigo @ 1.12.2011 - 16:13)
Используйте для этого trigger('hover');

$(document).ready(function() {
$('#div1).trigger('hover');
});

Не то. Я хочу попросить помощи у знатоков в правке скрипта который находится выше.

Спустя 14 минут, 4 секунды (1.12.2011 - 19:36) TranceIT написал(а):
Честно говоря ничего не понятно из задания. Нужно при hover на div1 или div2 оба обрезать по заданной длине контента?

Спустя 3 минуты, 54 секунды (1.12.2011 - 19:40) Dezigo написал(а):
Это не plugin -это гавнокод, Всё засунуто в объект.
Тогда нужно добавить в объекте , метода событие при загрузке.

Замените метод init ->на то что я написал.
И поставте Ваш div id
init = function() {
$elems.each(function(){
var $el = $(this);
if($el.hasClass('e-color'))
$el.data('original-color',$el.css('color'));
});
//имитация события при hover
animateElems('on','Ваш див ID');
initEventsHandler();
},

Спустя 4 минуты, 2 секунды (1.12.2011 - 19:44) RCuPeR написал(а):
Dezigo, возможно, не шарю в этом.

Ничего не изменилось.

Смотрите тут - http://naklei.com.ua/jq.html

Спустя 2 минуты, 23 секунды (1.12.2011 - 19:47) Dezigo написал(а):
Сейчас я перепишу. И скину Вам весь Ваш проект

Спустя 1 минута, 16 секунд (1.12.2011 - 19:48) RCuPeR написал(а):
Прошу прощения, Вы точно поняли, что мне нужно ?
Что бы при загрузке документа, отмечалась указанная часть текста.

Спустя 12 минут, 12 секунд (1.12.2011 - 20:00) Dezigo написал(а):
Просто всё перезапиши.
copy- > paste
При загрузке, страницы, выделяется нужный фрагмент.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
saved from url=(0028)http://naklei.com.ua/jq.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<
title>Эффект выделения информации средствами jQuery</title>

<
meta name="description" content="Overlay-like Effect with jQuery">
<
meta name="keywords" content="overlay, jquery, effect, fade out, change color, animate">
<!--
The JavaScript -->
<
script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<
script type="text/javascript">

$(function() {
/*
the menu list element,
the container and content divs
*/

var $menu = $('#menu'),
$container = $('#container'),
$content = $container.find('.content');

/*
lets add the classes effect, e-fade, and e-color to some elements.
e-fade : this will decrease the opacity of the element
e-color: this will change the color of the element
*/

$content
.find('p')
.
addClass('effect e-fade')
.
end()
.
find('h1, h2, h3')
.
addClass('effect e-fade e-color');

/*
elems is all the elements with class effect.
overlayEffect is our function / module that will take care of the animations
*/

var $elems = $(document).find('.effect'),
OverlayEffect = (function(){
//speed for animations
var speed = 1000,
//the event that triggers the effect
eventOff = 'mouseenter',
//the event that stops the effect
eventOn = 'mouseleave',
//this is the color that the elements will have after eventOff
colorOff = '#AAAAAA',
//saves the original color of each e-color element,
//and calls the methos to initialize the events

init = function() {
$elems.each(function(){
var $el = $(this);
if($el.hasClass('e-color'))
$el.data('original-color',$el.css('color'));
});
//имитация события при hover
animateElems('off','on');
initEventsHandler();
},
//initializes the events eventOff / eventOn
initEventsHandler = function() {
$menu
.delegate('div',eventOff,function(e){
//relation is the id of the element,
//and the class of related elements

var relation = $(this).attr('id');
animateElems('off',relation);
return false;
})
.
delegate('div',eventOn,function(e){
var relation = $(this).attr('id');
animateElems('on',relation);
return false;
});
},
//animates the color and / or opacity
animateElems = function(dir,relation) {
var $e = $elems;

switch(dir){
case 'on' :
//if there are elements on the page with class = relation
//then these elements will be excluded for the animation

if(relation)
$e = $elems.not('.'+relation);

$e.each(function(){
var $el = $(this),
color = $el.data('original-color'),
param = {};

if($el.hasClass('e-color'))
param.color = color;
if($el.hasClass('e-fade'))
param.opacity = 1;

$el.stop().animate(param,speed);
});

break;
case 'off' :
if(relation)
$e = $elems.not('.'+relation);

$e.each(function(){
var $el = $(this),
param = {};

if($el.hasClass('e-color'))
param.color = colorOff;
if($el.hasClass('e-fade'))
param.opacity = 0.1;

$el.stop().animate(param,speed);
});

break;
}
}
;

return {
init : init
};
})();

/*
call the init method of OverlayEffect
*/

OverlayEffect.init();
});
</
script>
</
head>
<
body>
<
div id="container" class="container">
<
ul id="menu" class="menu">
<
li><div id="effect-n">Hover 1</div></li>
<
li><div id="on">Hover 2</div></li>
</
ul>
<
div class="content">
<
h1 class="effect e-fade e-color" style="opacity: 1; ">Overlay-like Effect</h1>
<
h2 class="on effect e-fade e-color">Custom effects with jQuery</h2>

<
p class="effect e-fade" style="opacity: 1; ">A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine.</p>

<
p class="effect e-fade" style="opacity: 1; ">I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment; and yet I feel that I never was a greater artist than now.</p>

<
h3 class="effect-n effect e-fade e-color" style="opacity: 1; ">Vapour around me</h3>
<
p class="effect-n effect e-fade" style="opacity: 1; ">When, while the lovely valley teems with vapour around me, and the meridian sun strikes the upper surface of the impenetrable foliage of my trees, and but a few stray gleams steal into the inner sanctuary.</p>

<
p class="effect-n effect e-fade" style="opacity: 1; ">O my friend -- but it is too much for my strength -- I sink under the weight of the splendour of these visions!</p>
<
h3 class="effect e-fade e-color" style="opacity: 1; ">I am so happy, my dear friend</h3>
<
p class="effect e-fade" style="opacity: 1; ">A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine.</p>


<
p class="effect e-fade" style="opacity: 1; ">I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents.</p>

<
p class="effect e-fade" style="opacity: 1; ">I should be incapable of drawing a single stroke at the present moment; and yet I feel that I never was a greater artist than now.</p>

<
p class="effect e-fade" style="opacity: 1; ">When, while the lovely valley teems with vapour around me, and the meridian sun strikes the upper surface of the impenetrable foliage of my trees, and but a few stray gleams steal into the inner sanctuary, I throw myself down among the tall grass by the trickling stream; and, as I lie close to the earth, a thousand unknown plants are noticed by me: when I hear the buzz of the little world among the stalks, and grow familiar with the countless indescribable forms of the insects and flies, then I feel the presence of the Almighty, who formed us in his own image, and the breath of that universal love which bears and sustains us, as it floats around us in an eternity of bliss; and then, my friend, when darkness overspreads my eyes, and heaven and earth seem to dwell in my soul and absorb its power, like the form of a beloved mistress, then I often think with longing, Oh, would I could describe these conceptions, could impress upon paper all that is living so full and warm within me, that it might be the mirror of my soul, as my soul is the mirror of the infinite God!</p>

<
h3 class="effect e-fade e-color" style="opacity: 1; ">I sink under the weight</h3>
<
p class="effect e-fade" style="opacity: 1; ">O my friend -- but it is too much for my strength -- I sink under the weight of the splendour of these visions!</p>

<
p class="effect e-fade" style="opacity: 1; ">A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart.</p>

<
p class="effect e-fade" style="opacity: 1; ">I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine.</p>

<
p class="effect e-fade" style="opacity: 1; ">I am so happy, my dear friend.</p>
</
div>
</
div>
</
html>

Спустя 18 минут, 57 секунд (1.12.2011 - 20:19) RCuPeR написал(а):
Dezigo, огромное Вам спасибо wink.gif
А подскажите, примерный алгоритм, как Вы это сделали ?

Спустя 11 минут, 19 секунд (1.12.2011 - 20:30) Dezigo написал(а):
Цитата (RCuPeR @ 1.12.2011 - 17:19)
Dezigo, огромное Вам спасибо wink.gif
А подскажите, примерный алгоритм, как Вы это сделали ?

Алгоритм такой же, как Вы хотели. Имитация события.

Спустя 11 минут, 34 секунды (1.12.2011 - 20:42) RCuPeR написал(а):
Цитата (Dezigo @ 1.12.2011 - 17:30)
Цитата (RCuPeR @ 1.12.2011 - 17:19)
Dezigo, огромное Вам спасибо wink.gif
А подскажите, примерный алгоритм, как Вы это сделали ?

Алгоритм такой же, как Вы хотели. Имитация события.

Ладно, не буду заморачиваться, не мое этот JQ wink.gif
Спасибо Вам еще раз, +1 в карму !

Спустя 2 часа, 20 минут, 14 секунд (1.12.2011 - 23:02) RCuPeR написал(а):
Образовался мноюнерешимый баг. Прошу Dezigo отписаться по возможности.


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.