#jquery #delay #fadein #fadeout
#jquery #задержка #fadein #исчезновение
Вопрос:
У меня есть страница с фоновым изображением и слайдером. Оба они исчезают и исчезают одновременно. Проблема в том, что когда я применяю затухание к div, содержащему фоновое изображение, его дочерний div также затухает. Есть ли способ избежать этого.
<div id="background">
..... // all the page content goes here.
<div id="slider">
</div>
</div>
<script>
function fade(){
$('#background').dealy(5000).fadeout(1000,function(){//change the image}).fadein(1000, fade() );
//same for slider
}
</script>`
Комментарии:
1. Я не уверен, что понимаю… вы хотите скрыть div, но не содержимое div? Что именно вы бы тогда исчезли?
2. БенМ прав, я хочу затухать изображение в #background div, но не содержимое в нем.
Ответ №1:
Если я понимаю вопрос OP, он хочет скрыть фоновое изображение #background
, но ни одного из его дочерних элементов или содержимого.
Если я правильно понимаю, вы должны создать два класса для #background
div
следующего:
div#background.nobg {
background-image: none;
background-color: transparent;
}
div#background.hasbg {
background-image: url('url/to/bg.png');
}
А затем с помощью jQuery вы можете анимировать class
атрибут следующим образом:
$('#backround').animate({ 'class': 'hasbg' }, 'slow', 'easein');
Комментарии:
1. Это будет работать только с пользовательским интерфейсом jQuery. jQuery не анимирует классы.
Ответ №2:
Я считаю, что гораздо более простым решением было бы поместить фон в отдельный div с низким z-индексом и фиксированной позицией.
<head>
<style>
#background{position:fixed; top: 0; left:0; height:100%;width:100%; z-index: 0; background-color:#00f;}
#content{ z-index:1; background-color:white; height:50%;width:50%; position:absolute;}
</style>
</head>
<body>
<div id="content">Content goes here</div>
<div id="background"></div>
<script type="text/javascript">
$('#background').delay(5000).fadeOut(1000,function(){ $('#background').fadeIn(1000).css('background-color','#f00');});
</script>
</body>
Теперь вы можете делать с фоном все, что захотите, не влияя на содержимое.