#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Привет, друзья, я пытаюсь создать два слайдера изображений на одной странице с помощью jquery, но при запуске этого файла в браузере возникают некоторые проблемы. Вот мой код
HTML
<div id="projects">
<div id="completed">
<div class="button-previous">prev</div>
<div class="button-next">next</div>
<div class="slider-wrapper">
<div class="slider">
<div class="sp" style="background: blue;">akjdfalfkdj</div>
<div class="sp" style="background: yellow;">akjdfautlfkdkjkhkj</div>
<div class="sp" style="background: green;" >akjdfalfkdiyukjkhkj</div>
<div class="sp" style="background: red;">akjdfalfkdkkljjkhkj</div>
</div>
</div>
</div>
<div id="notcompleted">
<div class="button-previous-notcmpt">prev</div>
<div class="button-next-notcmpt">next</div>
<div class="slider-wrapper">
<div class="slider">
<div class="sp-notcmpt" style="background: blue;">akjdfalfkdj</div>
<div class="sp-notcmpt" style="background: yellow;">akjdfautlfkdkjkhkj</div>
<div class="sp-notcmpt" style="background: green;" >akjdfalfkdiyukjkhkj</div>
<div class="sp-notcmpt" style="background: red;">akjdfalfkdkkljjkhkj</div>
</div>
</div>
</div>
……………………………………………………………………………….
css
.slider-wrapper
{width:300px; height:250px;margin:15px;margin-left:25px }
.slider
{width:225px; height:225px; position:relative;}
.sp
{width:250px; height:250px; position:absolute;}
.button-previous
{margin-top:120px;float:left;}
.button-next
{margin-top:120px;float:right;}
.button-previous-notcmpt
{margin-top:120px;float:left}
.button-next-notcmpt
{margin-top:120px;float:right;}
.sp-notcmpt
{width:250px; height:250px; position:absolute;}
div#completed{
width: 300px;
height: 300px;
float: left;
border: solid black 1px;
overflow: hidden;
}
div#notcompleted{
width: 300px;
height: 300px;
float: right;
border: solid black 1px;
}
div#recentprojects{
height: 35px;
border: dotted green 0px;
text-align: center;
background-color: #0e3e6e;
color: #ffffff;
font-family: arial,normal;
line-height: 33px;
}
скрипт
$(document).ready(function(){
if($('#completed')){
$('.sp').first().addClass('active');
$('.sp').hide();
$('.active').show();
$('.button-next').click(function(){
$('.active').removeClass('active').addClass('oldActive');
if ( $('.oldActive').is(':last-child')) {
$('.sp').first().addClass('active');
}
else{
$('.oldActive').next().addClass('active');
}
$('.oldActive').removeClass('oldActive');
$('.sp').fadeOut();
$('.active').fadeIn();
});
$('.button-previous').click(function(){
$('.active').removeClass('active').addClass('oldActive');
if ( $('.oldActive').is(':first-child')) {
$('.sp').last().addClass('active');
}
else{
$('.oldActive').prev().addClass('active');
}
$('.oldActive').removeClass('oldActive');
$('.sp').fadeOut();
$('.active').fadeIn();
});
}
if($('#notcompleted')){
$('.sp-notcmpt').first().addClass('active');
$('.sp-notcmpt').hide();
$('.active').show();
$('.button-next-notcmpt').click(function(){
$('.active').removeClass('active').addClass('oldActive');
if ( $('.oldActive').is(':last-child')) {
$('.sp-notcmpt').first().addClass('active');
}
else{
$('.oldActive').next().addClass('active');
}
$('.oldActive').removeClass('oldActive');
$('.sp-notcmpt').fadeOut();
$('.active').fadeIn();
});
$('.button-previous-notcmpt').click(function(){
$('.active').removeClass('active').addClass('oldActive');
if ( $('.oldActive').is(':first-child')) {
$('.sp-notcmpt').last().addClass('active');
}
else{
$('.oldActive').prev().addClass('active');
}
$('.oldActive').removeClass('oldActive');
$('.sp-notcmpt').fadeOut();
$('.active').fadeIn();
});
}
});
Комментарии:
1. просьба помочь мне найти мою ошибку в коде
2. Не могли бы вы уточнить, какие проблемы вы почувствовали?
3. Какая ошибка консоли есть в браузере?
4. Ошибок консоли нет. теперь расскажите, что требуется по коду.
5. изображения в обоих слайдерах скользят одним щелчком мыши
Ответ №1:
попробуйте скрипт.
$(document).ready(function(){
if($('#completed')){
$('#completed .sp').first().addClass('active');
$('#completed .sp').hide();
$('#completed .active').show();
$('#completed .button-next').click(function(){
$('#completed .active').removeClass('active').addClass('oldActive');
if ( $('#completed .oldActive').is(':last-child')) {
$('#completed .sp').first().addClass('active');
}
else{
$('#completed .oldActive').next().addClass('active');
}
$('#completed .oldActive').removeClass('oldActive');
$('#completed .sp').fadeOut();
$('#completed .active').fadeIn();
});
$('#completed .button-previous').click(function(){
$('#completed .active').removeClass('active').addClass('oldActive');
if ( $('#completed .oldActive').is(':first-child')) {
$('#completed .sp').last().addClass('active');
}
else{
$('#completed .oldActive').prev().addClass('active');
}
$('#completed .oldActive').removeClass('oldActive');
$('#completed .sp').fadeOut();
$('#completed .active').fadeIn();
});
}
if($('#notcompleted')){
$('#notcompleted .sp-notcmpt').first().addClass('active');
$('#notcompleted .sp-notcmpt').hide();
$('#notcompleted .active').show();
$('#notcompleted .button-next-notcmpt').click(function(){
$('#notcompleted .active').removeClass('active').addClass('oldActive');
if ( $('#notcompleted .oldActive').is(':last-child')) {
$('#notcompleted .sp-notcmpt').first().addClass('active');
}
else{
$('#notcompleted .oldActive').next().addClass('active');
}
$('#notcompleted .oldActive').removeClass('oldActive');
$('#notcompleted .sp-notcmpt').fadeOut();
$('#notcompleted .active').fadeIn();
});
$('#notcompleted .button-previous-notcmpt').click(function(){
$('#notcompleted .active').removeClass('active').addClass('oldActive');
if ( $('#notcompleted .oldActive').is(':first-child')) {
$('#notcompleted .sp-notcmpt').last().addClass('active');
}
else{
$('#notcompleted .oldActive').prev().addClass('active');
}
$('#notcompleted .oldActive').removeClass('oldActive');
$('#notcompleted .sp-notcmpt').fadeOut();
$('#notcompleted .active').fadeIn();
});
}
});
Также проверьте, включена ли библиотека jquery
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
Комментарии:
1. @mirajrjaee, правильный ли ответ? если да, то, пожалуйста, примите как правильный ответ и проголосуйте 1.
2. @ Pratik Joshi ответ был правильным. Спасибо, у меня недостаточно репутации, чтобы проголосовать за ваш ответ. Я только начал со stakoverflow… Спасибо
3. @mirajrjaee добро пожаловать. Вы можете принять ответ как правильный, нажав на галочку слева