Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
108 / 102 / 35
Регистрация: 14.03.2014
Сообщений: 586
1

Анимация плюсика на аккордионе

31.10.2017, 20:10. Показов 620. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер, попробовал сделать аккордион на jquery, вроде бы все в норме, только мне не нравится анимация на плюсике, а точней когда кликаешь и разворачивается аккордион, и из плюса получается минус, он как бы просто исчезает, а хотелось чтобы была анимация такая же как когда из минуса получается плюс, вероятно где то еще в css можно было бы что то по другому реализовать, в общем нужна ваша хелпа )

песочница: https://codepen.io/evgeniyproweb/pen/WXNPOK

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ul.accord_list
    li.accord_item
        h2.accord_title.accord_title_show Статья номер 1
        .accord_inner
            .accord_img_wrap
                img.accord_img(src='https://images.unsplash.com/photo-1497796742626-fe30f204ec54?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&')
            .accord_text
                p Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis ab cumque repellat consequuntur maxime dolor modi aliquid ad. Eveniet suscipit quas qui consequatur cum! Modi, velit culpa. Non, vitae. Pariatur.
    li.accord_item
        h2.accord_title.accord_title_show Статья номер 2
        .accord_inner
            .accord_img_wrap
                img.accord_img(src='https://images.unsplash.com/photo-1497796742626-fe30f204ec54?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&')
            .accord_text
                p Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis ab cumque repellat consequuntur maxime dolor modi aliquid ad. Eveniet suscipit quas qui consequatur cum! Modi, velit culpa. Non, vitae. Pariatur.
    li.accord_item
        h2.accord_title.accord_title_show Статья номер 3
        .accord_inner
            .accord_img_wrap
                img.accord_img(src='https://images.unsplash.com/photo-1497796742626-fe30f204ec54?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&')
            .accord_text
                p Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis ab cumque repellat consequuntur maxime dolor modi aliquid ad. Eveniet suscipit quas qui consequatur cum! Modi, velit culpa. Non, vitae. Pariatur.
    li.accord_item
        h2.accord_title.accord_title_show Статья номер 4
        .accord_inner
            .accord_img_wrap
                img.accord_img(src='https://images.unsplash.com/photo-1497796742626-fe30f204ec54?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&')
            .accord_text
                p Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis ab cumque repellat consequuntur maxime dolor modi aliquid ad. Eveniet suscipit quas qui consequatur cum! Modi, velit culpa. Non, vitae. Pariatur.
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
.accord_list {
    max-width: 60%;
    margin: 20px auto;
}
 
.accord_item {  
    text-align: center;
}
 
.accord_title {
    position: relative;
    display: inline-block;
    padding: 0 0 0 35px;
    margin: 0 0 20px;
    font-size: 28px;
    font-weight: bold;
    color: lightblue;
    cursor: pointer;
    
    &:before {
        content: '';
        position: absolute;
        width: 16px;
        height: 3px;
        background: red;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }
}
 
@keyframes plus {       
    0% {transform: rotate(0deg);}
    100% {transform: rotate(90deg);}
} 
 
.accord_title_show {
    &:after {
        content: '';
        position: absolute;
        width: 16px;
        height: 3px;
        background: red;
        left: 0;
        top: 50%;
        transform: translateY(-50%) rotate(90deg);
        animation: plus .3s ease-in;
    }
}
 
.accord_img_wrap {
    width: 25%;
    margin: 0 auto;
    padding: 0 0 20px;
}
 
.accord_img {
    max-width: 100%;
    height: auto;
    display: block;
}
 
.accord_text {
    padding: 20px;
    margin: 0 0 20px;
    border-radius: 10px;
    background: #ccc;
}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(function(){
    
    $('.accord_inner').hide();
    
    $('.accord_title').click(function(){
        var accord = $(this).next('.accord_inner');
        
        if(accord.is(':hidden')) {
            accord.slideDown();
            $(this).removeClass('accord_title_show');
        } else {
            accord.slideUp();
            $(this).addClass('accord_title_show');
        }
        
    });
    
});
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2017, 20:10
Ответы с готовыми решениями:

Высота контента в аккордионе на всю доступную высоту
Здравствуйте. Делаю самостоятельно аккордион. Использовал JavaScript. Вот задача у меня такая: ...

Развертывающийся список (открытие подтаблиц по нажатию плюсика)
Здравствуйте! У меня есть php страница с таблицами, получающими информацию из базы данных...

Как вместо плюсика в Фотошопе выбрать кружок
Здравствуйте. Начал изучение Фотошопа, и сразу же столкнулся с одним вопросом - изначально у меня...

Как узнать ID в контакте. (за ответ в течении 30 минут дам 2 плюсика)
Как узнать ID пользователя в ВК, который играет в мою игру?????

1
108 / 102 / 35
Регистрация: 14.03.2014
Сообщений: 586
03.11.2017, 15:27  [ТС] 2
в общем возился и думал долго, в итоге решил вопрос, если кому интересно - можете сравнить, вот то что нужно было:

песочница: https://codepen.io/evgeniyproweb/pen/jaWdJL

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ul.accord_list
    li.accord_item
        h2.accord_title.accord_title_show Статья номер 1
        .accord_inner
            .accord_img_wrap
                img.accord_img(src='https://images.unsplash.com/photo-1497796742626-fe30f204ec54?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&')
            .accord_text
                p Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis ab cumque repellat consequuntur maxime dolor modi aliquid ad. Eveniet suscipit quas qui consequatur cum! Modi, velit culpa. Non, vitae. Pariatur.
    li.accord_item
        h2.accord_title.accord_title_show Статья номер 2
        .accord_inner
            .accord_img_wrap
                img.accord_img(src='https://images.unsplash.com/photo-1497796742626-fe30f204ec54?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&')
            .accord_text
                p Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis ab cumque repellat consequuntur maxime dolor modi aliquid ad. Eveniet suscipit quas qui consequatur cum! Modi, velit culpa. Non, vitae. Pariatur.
    li.accord_item
        h2.accord_title.accord_title_show Статья номер 3
        .accord_inner
            .accord_img_wrap
                img.accord_img(src='https://images.unsplash.com/photo-1497796742626-fe30f204ec54?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&')
            .accord_text
                p Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis ab cumque repellat consequuntur maxime dolor modi aliquid ad. Eveniet suscipit quas qui consequatur cum! Modi, velit culpa. Non, vitae. Pariatur.
    li.accord_item
        h2.accord_title.accord_title_show Статья номер 4
        .accord_inner
            .accord_img_wrap
                img.accord_img(src='https://images.unsplash.com/photo-1497796742626-fe30f204ec54?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&')
            .accord_text
                p Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis ab cumque repellat consequuntur maxime dolor modi aliquid ad. Eveniet suscipit quas qui consequatur cum! Modi, velit culpa. Non, vitae. Pariatur.
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
* {
    transition: all;
}
 
.accord_list {
    max-width: 60%;
    margin: 20px auto;
}
 
.accord_item {  
    text-align: center;
}
 
.accord_title {
    position: relative;
    display: inline-block;
    padding: 0 0 0 35px;
    margin: 0 0 20px;
    font-size: 28px;
    font-weight: bold;
    color: lightblue;
    cursor: pointer;
    
    &:before {
        content: '';
        position: absolute;
        width: 16px;
        height: 3px;
        background: red;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }
}
 
@keyframes plus {   
    0% {transform: rotate(0deg);}
    100% {transform: rotate(90deg);}
} 
 
@keyframes minus {  
    0% {transform: rotate(90deg);}
    100% {transform: rotate(0deg);} 
} 
 
.accord_title_show {    
    &:after {
        content: '';
        position: absolute;
        width: 16px;
        height: 3px;
        background: red;
        left: 0;
        top: 50%;
        transform: translateY(-50%) rotate(90deg);
        animation: plus .3s ease-in;
    }
}
 
.accord_title_down {    
    &:after {
        content: '';
        position: absolute;
        width: 16px;
        height: 3px;
        background: red;
        left: 0;
        top: 50%;
        transform: translateY(-50%) rotate(0deg);
        animation: minus .3s ease-in;
    }
}
 
.accord_img_wrap {
    width: 25%;
    margin: 0 auto;
    padding: 0 0 20px;
}
 
.accord_img {
    max-width: 100%;
    height: auto;
    display: block;
}
 
.accord_text {
    padding: 20px;
    margin: 0 0 20px;
    border-radius: 10px;
    background: #ccc;
}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(function(){
    
    $('.accord_inner').hide();
    
    $('.accord_title').click(function(){
        var accord = $(this).next('.accord_inner');
        
        if(accord.is(':hidden')) {
            accord.slideDown();
            $(this).addClass('accord_title_down');
        } else {
            accord.slideUp();
            $(this).removeClass('accord_title_down');
            $(this).addClass('accord_title_show');
        }       
    });
    
});
Добавлено через 3 минуты
П.С. конечно css можно оптимизировать чтобы меньше строк было, этим заниматься не стал(для продакшена это делать надо), суть была в другом
0
03.11.2017, 15:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2017, 15:27
Помогаю со студенческими работами здесь

Анимация в OpenGL, а где собсно, анимация?
// Bounce.cpp // Demonstrates a simple animated rectangle program with GLUT // OpenGL SuperBible,...

Анимация.
Кто поможет мне создать анимацию с плывущим дельвинчиком! помогите пожалуйста!

Анимация
Оцените анимацию начинающего))) http://holodilnikispb.ru/animation.html

Анимация в С++
Уважаемые, программисты! кто может сделать анимацию в программе С++, рисунок можно самый простой...

Анимация
Здравствуйте, Пытаюсь сделать анимацию. Подскажите, что не так. x=-10:10; plot(x,y); for...

анимация
Ребятки, помогите пожалуйста запишите java код для создания анимации появляющийся и исчезающий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru