2013-08-07 5 views
2

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

$(document).ready(function(){ 

    $("td").hover(function(){ 

     $(this).fadeTo(700,1); 

      },function(){ 

     $(this).fadeTo(500,0.85); 

    }); 
}); 

EDIT: Похоже, что проблема может быть, что ничего не стреляет, когда я парить, даже когда я добавляю alert('hi') функции, ничего не происходит

EDIT 2: Если кто-то еще читает этот вопрос, я считаю, что причина, по которой он не работал, когда я задавал этот вопрос, заключается в том, что я создавал элементы td асинхронно, и их не было, когда страница загружалась. Я считаю, что в итоге я использовал .on() вместо .hover(). Кроме того, желаемый эффект уменьшался до 1,0 непрозрачности (он начинался с 0,85 или 0,5, я забыл). Спасибо всем

+0

Табличные ячейки странны, когда дело доходит до CSS и jQuery. Опубликуйте jsfiddle, и мы постараемся помочь. – user1477388

+0

Хорошо, я сделал jsfiddle: http://jsfiddle.net/D96PA/ –

+1

После добавления jquery к вашей скрипке и изменения сценария, чтобы исчезнуть до .5, он выглядит нормально: http://jsfiddle.net/u3D7j/ –

ответ

8

Просто используйте CSS

td { 
    opacity: .85;  
    transition: opacity .25s ease-in-out; 
    -moz-transition: opacity .25s ease-in-out; 
    -webkit-transition: opacity .25s ease-in-out; 
} 
td:hover { 
    opacity: .5;  
} 

Demo: http://jsfiddle.net/maniator/bnrWK/

+1

Мне нравится этот ответ. Не нужно использовать jQuery для чего-то такого простого. – sircapsalot

+0

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

+0

@SamCreamer обновлен - теперь происходит анимация затухания. Все еще нет javascript. – Neal

1

Easy, у Вас есть свои функции в обратном направлении:

(Вы были выцветанию до 1 при наведении курсора мыши, и замирание вниз. 85 на выводе)

$(document).ready(function(){ 

    $("td").hover(function(){ 

     $(this).fadeTo(500,0.85); 

    },function(){ 

     $(this).fadeTo(700,1); 

    }); 
}); 

Вот скрипка: http://jsfiddle.net/bZ3gX/

+0

все еще не работает, я думаю, что ничего не стреляет, когда я навешиваю над $ ("td") –

+2

@SamCreamer, убедитесь, что вы включаете jQuery в свой jsFiddle .. Я заметил связь там, что вы этого не сделали. – sircapsalot

+0

Да, это тоже поможет! – SeanKendle

0

Прозрачность, которую вы затухаете до 1,0, полностью непрозрачна, не прозрачна.

Попробуйте иметь его выцветает до 0,5

0

Вы, возможно, придется предопределить непрозрачность для ячейки таблицы до наличия парения работы.

table tr td { 
    background: grey; 
    opacity: 0.5; 
    -webkit-opacity: 0.5; 
} 

Остальное просто использует ваш код jQuery.

Jsfiddle: http://jsfiddle.net/vdHDD/1/

0

вы можете использовать CSS transtions также

td:hover { 
     opacity: 1; 
     -webkit-transition: opacity .7s ease-in-out; 
     -moz-transition: opacity .7s ease-in-out; 
     -ms-transition: opacity .7s ease-in-out; 
     -o-transition: opacity .7s ease-in-out; 
     transition: opacity .7s ease-in-out; 
    } 
td{ 
opacity:.85; 
} 
0

http://jsfiddle.net/D96PA/4/

Не знаю, почему вы установите вторую функцию 0,85 вместо 0,5. Я изменил его на 0.5. Дайте мне знать, если это то, что вы искали.

$(document).ready(function(){ 

     $("td").hover(function(){ 

      $(this).fadeTo(700,1); 

       },function(){ 

      $(this).fadeTo(500,0.5); 

     }); 
    }); 
Смежные вопросы