Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54

3D вращение элемента при скроле

18.07.2016, 18:58. Показов 3494. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Прошу помощи дорогие форумчане.
Как реализовать данный эффект крутящегося 3d элемента при скроле страницы или смены секции.

Нашел 3d css трансформацию.


HTML5
1
2
3
4
5
6
7
8
9
<div class="container" id="container">
<div id="book">
    <figure class="back"></figure>
    <figure class="front"></figure>
    <figure class="left-1"></figure>
    <figure class="left-2"></figure>
    <figure class="right"></figure>
</div>
</div>
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
.container {
    margin: 100px auto auto 100px;
    position: relative;
    width: 226px;
    height: 316px;
    /* задаем глубину сцене */
    -webkit-perspective: 600px; /* webkit */
    -moz-perspective: 600px; /* mozilla */
    -ms-perspective: 600px; /* IE 10 */
    -o-perspective: 600px; /* opera когда-то тоже должна начать понимать */
    perspective: 600px; /* св-во по стандартам */
}
 
#book { /* поварачивать будет общий контейнер */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: absolute;
 
    -webkit-transition: -webkit-transform 1.5s;
    -moz-transition: -moz-transform 1.5s;
    -ms-transition: -moz-transform 1.5s;
    -o-transition: -o-transform 1.5s;
    transition: transform 1.5s; /* трансформации будут происходить анимированно продолжительностью 0.5 сек */
    
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    -o-transform-style: preserve-3d;
    transform-style: preserve-3d;   /* указываем, что дочерние элементы находятся в 3D пространстве */
    
}
#book.flip {    /* добавляя этот класс, поворачиваем контейнер на 180 градусов */
    -webkit-transform: rotateY( 180deg );
    -moz-transform: rotateY( 180deg );
    -ms-transform: rotateY( 180deg );
    -o-transform: rotateY( 180deg );
    transform: rotateY( 180deg );
}
 
figure {
    position: absolute;
    display: block;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;    /* если элемент отвернут лицом от пользователя, контент этого элемента не виден */
}
.back, .front, .left-1, .left-2, .right {
    background: url(book-texture.jpg);
}
.front {
    width: 100%;
    height: 100%;
    background-position: -276px 0;
    -webkit-transform: rotateY( 0deg ) translateZ(  25px );
    -moz-transform: rotateY( 0deg ) translateZ(  25px );
    -ms-transform: rotateY(0deg) translateZ(  25px );
    -o-transform: rotateY( 0deg ) translateZ(  25px );
    transform: rotateY( 0deg ) translateZ(  25px );
    /* 
        rotateY - поворачиваем грань на нужный угол
        translateZ - т.к. объект имеет толщину
    */
}
.back {
    width: 100%;
    height: 100%;
    -webkit-transform: rotateY( 180deg ) translateZ(  25px );
    -moz-transform: rotateY( 180deg ) translateZ(  25px );
    -ms-transform: rotateY(180deg) translateZ(  25px );
    -o-transform: rotateY( 180deg ) translateZ(  25px );
    transform: rotateY( 180deg ) translateZ(  25px );   /* в начальном положении фэйс карты к нам развернут на 180 градусов */
}
 
/*
    придаем выпуклости торцу 
    разбиваем его на две части и ставим их под небольшим углом друг к другу
    
*/
.left-1 {
    background-position: -250px 0;
    width: 28.5px;
            /*
                тут я немного схалтурил. реально размер половины грани равен 25px и при этом значении оставалась дырка между гранями
                в этом примере не стал пересчитывать толщину книги с учетом потерь из-за "выпуклости" торца
         */
    height: 100%;
    -webkit-transform: rotateY( -70deg ) translate3d(-3px, 0, 8px );
    -moz-transform: rotateY( -70deg ) translate3d(-3px, 0, 8px );
    -ms-transform: rotateY(-70deg) translate3d( -3px, 0, 8px );
    -o-transform: rotateY( -70deg ) translate3d( -3px, 0, 8px );
    transform: rotateY( -70deg ) translate3d( -3px, 0, 8px ); /*
                                                                                                                             8 получаем из решения прямоугольного треугольника (по известному углу и гипотенузе вычисляем катет) online решить можно тут [url]http://www.fxyz.ru/[/url]
                                                                                                                             -3 - костыль, подобранный в ручную для этого примера
                                                                                                                        */
    -webkit-transform-origin: left center;
    -moz-transform-origin: left center;
    -ms-transform-origin: left center;
    -o-transform-origin: left center;
    transform-origin: left center; /* поворачиваю торцы вокруг их левой границы: так проще потом расположить элемент (в данном случае) */
}
.left-2 {
    background-position: -225px 0;
    width: 28px;
    height: 100%;
    -webkit-transform: rotateY( -110deg ) translate3d( -24.5px, 0, 8px );
    -moz-transform: rotateY( -110deg ) translate3d(  -24.5px, 0, 8px );
    -ms-transform: rotateY(-110deg) translate3d( -24.5px, 0, 8px );
    -o-transform: rotateY( -110deg ) translate3d( -24.5px, 0, 8px );
    transform: rotateY( -110deg ) translate3d( -24.5px, 0, 8px ); /*24.5 - тоже из решения прямоугольного треугольника - второй катет */
    
    -webkit-transform-origin: left center;
    -moz-transform-origin: left center;
    -ms-transform-origin: left center;
    -o-transform-origin: left center;
    transform-origin: left center;
}
 
.right {
    background-position: -276px 0;
    width: 50px;
    height: 100%;
    -webkit-transform: rotateY( 90deg );
    -moz-transform: rotateY( 90deg );
    -ms-transform: rotateY(90deg);
    -o-transform: rotateY( 90deg );
    transform: rotateY( 90deg );
    top: 0;
    right:  0;
}
Рабочий пример http://xiper.net/examples/html... -book.html
Хочу реализовать подобное как на http://www.crystalfresh.com.ua/.
Нечто подобное реализовано на svg http://ruseller.com/lessons/le... index.html .
Как привязать начало вращения анимации на событие скрола страницы ?
Подскажите как продумать динамику , либо может есть библиотека которая делает данную красоту.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.07.2016, 18:58
Ответы с готовыми решениями:

Поведение элемента при скроле страницы
Не получается решить задачу, с данным кодом. Нужно, чтобы элемент &lt;span class=&quot;openclosebtn&quot;&gt;☰ open&lt;/span&gt; при скроле...

Закрепление элемента при скроле
Доброго времени суток. Есть один сайт tehnoprostir.com.ua. И есть желание сделать стиль для себя в CSS для этого сайта. Для начала хочу...

Анимация при скроле
и снова здравствуйте) есть опять мега идея) с чего нужно начать? хочу сделать - что бы когда скролишь вниз, рос определенный объект,...

37
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 19:18
Rikko123, проблема в том, что дезодорант на том сайте является мультиком
и вот его раскадровка
http://www.crystalfresh.com.ua/img/deyzik_3D.png
Миниатюры
3D вращение элемента при скроле  
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
18.07.2016, 19:30  [ТС]
BANO, как он работает ? можно ли его на JS cделать ?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 19:50
Rikko123, там смена кадров на js и сделана
думаю это можно спокойно сделать на requestAnimationFrame
эта такая функция, которая вызывает колбек тогда, когда удобно браузеру обработать анимацию
кол бек считает, сколько времени прошло с начала анимации, предполагаемое время анимации делит на время уже прошедшее
потом умножает на общую ширину всей раскадровки
потом с помощью оператора % находит остаток от деления на ширину одного кадра
получившееся число вычитает и получает позицию кадра...

ой чую я что вы нифигашеньки не поняли
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
18.07.2016, 21:22  [ТС]
Это все новое для меня и мне будет очень увлекательно и интересно это реализовать)
Смогли бы вы помочь небольшим кодом , как хоть это реализовать, как функции привязать к элементу ?
Я буду вам очень признателен
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 21:35
вот как это реализовано на том сайте
JavaScript
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
var sizeDeo_w = page_w,
    sizeDeo_H = page_h;
pageSearch_h =page_h / 979;
pageSearch_w =page_w / 1920;
if (page_w / page_h > 2 ){
    if (page_h == 643){
        sizeDeo_w =  pageSearch_w * 198 * 1.96464646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96464646464;
    }else if (page_h<660){
        sizeDeo_w =  pageSearch_w * 198 * 1.96004646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96004646464;
    }else{
        sizeDeo_w =  pageSearch_w * 198 * 1.96464646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96464646464;
    }
}else if (page_w / page_h < 1.9 ){
    sizeDeo_w =  pageSearch_h * 389 / 1.96464646464;
    sizeDeo_H =  pageSearch_h * 389;
}else {
    sizeDeo_w =  pageSearch_w * 198;
    sizeDeo_H =  pageSearch_h * 389;
}
var  deoScroll = 0;
var refreshIntervalId = setInterval(function(){
    if (deoScroll < sizeDeo_H/1.96464646464 * 34) {
        deoScroll = deoScroll + sizeDeo_H/1.96464646464;
        jQuery('.deo').css({'background-position':'-'+ deoScroll +'px 0'})
    } else {
        jQuery('.deo').css({'background-position':0 +'px 0px'})
       clearInterval(refreshIntervalId);
    }
},15)
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
18.07.2016, 21:46  [ТС]
Правильно ли я вас понял, мне осталось только скопировать html разметку и стили
После чего заменив на свой bg , и у меня будет все готово ?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 22:02
\Rikko123, ещё коэффициенты подправить
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
19.07.2016, 03:26  [ТС]
Подскажите пожалуйста, какие коэффициенты нужно править в данном скрипте ?
Ниже ошибка в браузере на скрине .
Миниатюры
3D вращение элемента при скроле  
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
19.07.2016, 12:33
Rikko123, вы переменные то не все получили...
замените page_w на innerWidth, a page_h нa innerHeight
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
19.07.2016, 17:52  [ТС]
Пробую, но никак )
Разметка дезодоранта
HTML5
1
2
3
4
<div class="deo active" >
<div class="afters active" >
</div>
</div>
JavaScript
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
jQuery(document).ready(function () {
var sizeDeo_w = page_w,
    sizeDeo_H = page_h;
pageSearch_h =page_h / 979;
pageSearch_w =page_w / 1920;
if (page_w / page_h > 2 ){
    if (page_h == 643){
        sizeDeo_w =  pageSearch_w * 198 * 1.96464646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96464646464;
    }else if (page_h<660){
        sizeDeo_w =  pageSearch_w * 198 * 1.96004646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96004646464;
    }else{
        sizeDeo_w =  pageSearch_w * 198 * 1.96464646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96464646464;
    }
}else if (page_w / page_h < 1.9 ){
    sizeDeo_w =  pageSearch_h * 389 / 1.96464646464;
    sizeDeo_H =  pageSearch_h * 389;
}else {
    sizeDeo_w =  pageSearch_w * 198;
    sizeDeo_H =  pageSearch_h * 389;
}
var  deoScroll = 0;
var refreshIntervalId = setInterval(function(){
    if (deoScroll < sizeDeo_H/1.96464646464 * 34) {
        deoScroll = deoScroll + sizeDeo_H/1.96464646464;
        jQuery('.deo').css({'background-position':'-'+ deoScroll +'px 0'})
    } else {
        jQuery('.deo').css({'background-position':0 +'px 0px'})
       clearInterval(refreshIntervalId);
    }
},15)
})
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
.deo {
    background-image: url(img/deyzik_3D.png);
    background-repeat: no-repeat;
    background-position: left top;
    position: fixed;
    z-index: 8;
}
.afters {
    background-image: url(img/shadow.png);
    background-repeat: no-repeat;
    position: relative;
    display: block;
    height: 68px;
    border-radius: 50%;
    top:365px;
}
  .deo1,
    .deo.active {
        animation: deo_top_down 2s ease-out infinite;
    }
        @keyframes deo_top_down {
            0% {
                transform: translateY(0px);
            }
            50% {
                transform: translateY(-10px);
            }
            100% {
                transform: translateY(0px);
            }
        }
        .afters.active {
        animation: deo_top_down_shadow 2s ease-out infinite;
    }
        @keyframes deo_top_down_shadow {
            0% {
 
                transform: translateY(0px) scale(.8);
            }
            50% {
                transform: translateY(10px) scale(1.1);
            }
            100% {
                transform: translateY(0px) scale(0.8);
            }
        }
   /* .deo.active {
         animation: deo_roll 2s steps(35, end) infinite;
    } 
        @keyframes deo_roll {
           0% {
                background-position: 0px;
            }
            99% {
                background-position: -7070px;
            }
            100% {
                background-position: 0px;
            }
        }*/
 
 
.deo1 {
    background-image: url(img/deo.png);
    background-repeat: no-repeat;
    background-position: center top;
    position: absolute;
    z-index: 5;
 
}
Встроил данный код, заменил ( замените page_w на innerWidth, a page_h нa innerHeight )
Ничего не происходит
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
19.07.2016, 18:03

Не по теме:

Rikko123, вы не те теги используете, надо использовать [HTML][/HTML], а не [XML][/XML]



Цитата Сообщение от Rikko123 Посмотреть сообщение
Ничего не происходит
может какие-то ошибки в консоли есть?
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
19.07.2016, 21:28  [ТС]
В консоле тоже ничего (
HTML5
1
2
3
4
<div class="deo active" >
<div class="afters active" >
</div>
</div>
Скрипт не присваивает кастомные сстили вращения элемента.
Ниже скрин как это показано , у меня даже ошибок нет (
Миниатюры
3D вращение элемента при скроле  
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
20.07.2016, 00:18
Rikko123, свойства меняются, значит всё там работает
что-то вы мне тут лапшу вешаете
может просто у вас со стилями что-то не то
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
22.07.2016, 22:12  [ТС]
Прошу прощение )
Работает, только событие пролистывания происходит до загрузки страницы после чего останавливается, также не работает при скроле. Как решить данную проблему, какое свойство применить и как пофиксить?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
23.07.2016, 03:05
JavaScript
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
jQuery(document).on("scroll", function () {
var sizeDeo_w = page_w,
    sizeDeo_H = page_h;
pageSearch_h =page_h / 979;
pageSearch_w =page_w / 1920;
if (page_w / page_h > 2 ){
    if (page_h == 643){
        sizeDeo_w =  pageSearch_w * 198 * 1.96464646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96464646464;
    }else if (page_h<660){
        sizeDeo_w =  pageSearch_w * 198 * 1.96004646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96004646464;
    }else{
        sizeDeo_w =  pageSearch_w * 198 * 1.96464646464;
        sizeDeo_H =  pageSearch_w * 198 * 1.96464646464;
    }
}else if (page_w / page_h < 1.9 ){
    sizeDeo_w =  pageSearch_h * 389 / 1.96464646464;
    sizeDeo_H =  pageSearch_h * 389;
}else {
    sizeDeo_w =  pageSearch_w * 198;
    sizeDeo_H =  pageSearch_h * 389;
}
var  deoScroll = 0;
var refreshIntervalId = setInterval(function(){
    if (deoScroll < sizeDeo_H/1.96464646464 * 34) {
        deoScroll = deoScroll + sizeDeo_H/1.96464646464;
        jQuery('.deo').css({'background-position':'-'+ deoScroll +'px 0'})
    } else {
        jQuery('.deo').css({'background-position':0 +'px 0px'})
       clearInterval(refreshIntervalId);
    }
},15)
})
Добавлено через 2 минуты
JavaScript
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
$(document).on("scroll", function() {
  var sizeDeo_w = page_w,
    sizeDeo_H = page_h;
  pageSearch_h = page_h / 979;
  pageSearch_w = page_w / 1920;
  if (page_w / page_h > 2) {
    sizeDeo_w = pageSearch_w * 198 * 1.96464646464;
    sizeDeo_H = pageSearch_w * 198 * 1.96464646464;
  } else if (page_w / page_h < 1.9) {
    sizeDeo_w = pageSearch_h * 389 / 1.96464646464;
    sizeDeo_H = pageSearch_h * 389;
  } else {
    sizeDeo_w = pageSearch_w * 198;
    sizeDeo_H = pageSearch_h * 389;
  }
  var deoScroll = 0;
  var refreshIntervalId = setInterval(function() {
    if (deoScroll < sizeDeo_H / 1.96464646464 * 34) {
      deoScroll = deoScroll + sizeDeo_H / 1.96464646464;
      $('.deo').css({
        'background-position': '-' + deoScroll + 'px 0'
      })
    } else {
      $('.deo').css({
        'background-position': 0 + 'px 0px'
      })
      clearInterval(refreshIntervalId);
    }
  }, 15)
})
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
23.07.2016, 10:53  [ТС]
Толи не хватает знаний , толи я не могу допетрить или стили не верно прописываю. Уже все перепробовал, не вращается он у меня
Стили .deo active , прописывал в ручную, так как не присваиваются.

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
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
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Continuous scrolling - fullPage.js</title>
    <meta name="author" content="Matthew Howell" />
    <meta name="description" content="fullPage continuous scrolling demo." />
    <meta name="keywords"  content="fullpage,jquery,demo,scroll,loop,continuous" />
    <meta name="Resource-type" content="Document" />
 
 
    <link rel="stylesheet" type="text/css" href="../jquery.fullPage.css" />
    <link rel="stylesheet" type="text/css" href="examples.css" />
 
    <!--[if IE]>
        <script type="text/javascript">
             var console = { log: function() {} };
        </script>
    <![endif]-->
 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
 
    <script type="text/javascript" src="../jquery.fullPage.js"></script>
    <script type="text/javascript" src="examples.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $('#fullpage').fullpage({
              sectionsColor: ['#1bbc9b', '#4BBFC3', '#7BAABE', 'whitesmoke', '#ccddff'],
              anchors: ['firstPage', 'secondPage', '3rdPage', '4thpage', 'lastPage'],
              menu: '#menu',
              continuousVertical: true
            });
        });
    </script>
 
</head>
<body>
 
 
 
 
 
<ul id="menu">
    <li data-menuanchor="firstPage" class="active"><a href="#firstPage">First slide</a></li>
    <li data-menuanchor="secondPage"><a href="#secondPage">Second slide</a></li>
    <li data-menuanchor="3rdPage"><a href="#3rdPage">Third slide</a></li>
</ul>
 
<!-- ДЕЗИК -->
<div class="deo active" style="top: 186.372px; left: 579.83px; width: 133.341px; height: 261.967px; background-size: cover;"><div class="afters active" style="top: 241.967px; left: -34.3453px; width: 202.031px; "></div></div>
<!-- ДЕЗИК -->
 
 
<div id="fullpage">
    <div class="section " id="section0">
        <!-- <div class="deo1"></div> -->
    </div>
    <div class="section" id="section1">
        <div class="intro">
            
        </div>
    </div>
    <div class="section" id="section2">
        <div class="intro">
        
        </div>
    </div>
</div>
 
</body>
</html>
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
@CHARSET "ISO-8859-1";
/* Reset CSS
 * --------------------------------------- */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,
form,fieldset,input,textarea,p,blockquote,th,td {
    padding: 0;
    margin: 0;
}
a{
    text-decoration:none;
}
table {
    border-spacing: 0;
}
fieldset,img {
    border: 0;
}
address,caption,cite,code,dfn,em,strong,th,var {
    font-weight: normal;
    font-style: normal;
}
strong{
    font-weight: bold;
}
ol,ul {
    list-style: none;
    margin:0;
    padding:0;
}
caption,th {
    text-align: left;
 
}
h1,h2,h3,h4,h5,h6 {
    font-weight: normal;
    font-size: 100%;
    margin:0;
    padding:0;
    color:#444;
}
q:before,q:after {
    content:'';
}
abbr,acronym { border: 0;
}
 
 
/* Custom CSS
 * --------------------------------------- */
body{
    font-family: arial,helvetica;
    color: #333;
    color: rgba(0,0,0,0.5);
}
.wrap{
    margin-left: auto;
    margin-right: auto;
    width: 960px;
    position: relative;
}
h1{
    font-size: 6em;
}
p{
    font-size: 2em;
}
.intro p{
    width: 50%;
    margin: 0 auto;
    font-size: 1.5em;
}
.section{
    text-align:center;
}
#menu li {
    display:inline-block;
    margin: 10px;
    color: #000;
    background:#fff;
    background: rgba(255,255,255, 0.5);
    -webkit-border-radius: 10px;
            border-radius: 10px;
}
#menu li.active{
    background:#666;
    background: rgba(0,0,0, 0.5);
    color: #fff;
}
#menu li a{
    text-decoration:none;
    color: #000;
}
#menu li.active a:hover{
    color: #000;
}
#menu li:hover{
    background: rgba(255,255,255, 0.8);
}
#menu li a,
#menu li.active a{
    padding: 9px 18px;
    display:block;
}
#menu li.active a{
    color: #fff;
}
#menu{
    position:fixed;
    top:0;
    left:0;
    height: 40px;
    z-index: 70;
    width: 100%;
    padding: 0;
    margin:0;
}
.twitter-share-button{
    position: fixed;
    z-index: 99;
    right: 149px;
    top: 9px;
}
#download{
    margin: 10px 0 0 0;
    padding: 15px 10px;
    color: #fff;
    text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
    background-color: #49afcd;
    background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
    background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
    background-image: -webkit-gradient(linear,0 0,0 100%,from( #5bc0de),to( #2f96b4));
    background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
    background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
    background-image: linear-gradient(top, #5bc0de, #2f96b4);
    background-repeat: repeat-x;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
    border-color: #2f96b4 #2f96b4 #1f6377;
    border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
    filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
 
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    border-radius: 6px;
    vertical-align: middle;
    cursor: pointer;
    display: inline-block;
    -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
    -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
}
#download a{
    text-decoration:none;
    color:#fff;
}
#download:hover{
    text-shadow: 0 -1px 0 rgba(0,0,0,.25);
    background-color: #2F96B4;
    background-position: 0 -15px;
    -webkit-transition: background-position .1s linear;
    -moz-transition: background-position .1s linear;
    -ms-transition: background-position .1s linear;
    -o-transition: background-position .1s linear;
    transition: background-position .1s linear;
}
#infoMenu{
    height: 20px;
    color: #f2f2f2;
    position:fixed;
    z-index:70;
    bottom:0;
    width:100%;
    text-align:right;
    font-size:0.9em;
    padding:8px 0 8px 0;
}
#infoMenu ul{
    padding: 0 40px;
}
#infoMenu li a{
    display: block;
    margin: 0 22px 0 0;
    color: #333;
}
#infoMenu li a:hover{
    text-decoration:underline;
}
#infoMenu li{
    display:inline-block;
    position:relative;
}
#examplesList{
    display:none;
    background: #282828;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    border-radius: 6px;
    padding: 20px;
    float: left;
    position: absolute;
    bottom: 29px;
    right: 0;
    width:638px;
    text-align:left;
}
#examplesList ul{
    padding:0;
}
#examplesList ul li{
    display:block;
    margin: 5px 0;
}
#examplesList ul li a{
    color: #BDBDBD;
    margin:0;
}
#examplesList ul li a:hover{
    color: #f2f2f2;
}
#examplesList .column{
    float: left;
    margin: 0 20px 0 0;
}
#examplesList h3{
    color: #f2f2f2;
    font-size: 1.2em;
    margin: 0 0 15px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.4);
    -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
    -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.1);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
    padding: 0 0 5px 0;
}
 
 
 
/* Demos Menu
 * --------------------------------------- */
 #demosMenu{
    position:fixed;
    bottom: 10px;
    right:10px;
    z-index: 999;
 }
 
 
/*----------------ДЕЗИК-------------------------*/
 
 .deo {
    background-image: url(imgs/deyzik_3D.png);
    background-repeat: no-repeat;
    background-position: left top;
    position: fixed;
    z-index: 8;
}
.afters {
    background-image: url(imgs/shadow.png);
    background-repeat: no-repeat;
    position: relative;
    display: block;
    height: 68px;
    border-radius: 50%;
    top:365px;
}
    .deo1,
    .deo.active {
        animation: deo_top_down 2s ease-out infinite;
    }
        @keyframes deo_top_down {
            0% {
                transform: translateY(0px);
            }
            50% {
                transform: translateY(-10px);
            }
            100% {
                transform: translateY(0px);
            }
        }
        .afters.active {
        animation: deo_top_down_shadow 2s ease-out infinite;
    }
        @keyframes deo_top_down_shadow {
            0% {
 
                transform: translateY(0px) scale(.8);
            }
            50% {
                transform: translateY(10px) scale(1.1);
            }
            100% {
                transform: translateY(0px) scale(0.8);
            }
        }
   /* .deo.active {
         animation: deo_roll 2s steps(35, end) infinite;
    } 
        @keyframes deo_roll {
           0% {
                background-position: 0px;
            }
            99% {
                background-position: -7070px;
            }
            100% {
                background-position: 0px;
            }
        }*/
 
 
.deo1 {
    background-image: url(imgs/deo.png);
    background-repeat: no-repeat;
    background-position: center top;
    position: absolute;
    z-index: 5;
 
}
JavaScript
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
$(document).ready(function(){
    $("#demosMenu").change(function(){
      window.location.href = $(this).find("option:selected").attr("id") + '.html';
    });
    
    $(document).on("scroll", function() {
  var sizeDeo_w = page_w,
    sizeDeo_H = page_h;
  pageSearch_h = page_h / 979;
  pageSearch_w = page_w / 1920;
  if (page_w / page_h > 2) {
    sizeDeo_w = pageSearch_w * 198 * 1.96464646464;
    sizeDeo_H = pageSearch_w * 198 * 1.96464646464;
  } else if (page_w / page_h < 1.9) {
    sizeDeo_w = pageSearch_h * 389 / 1.96464646464;
    sizeDeo_H = pageSearch_h * 389;
  } else {
    sizeDeo_w = pageSearch_w * 198;
    sizeDeo_H = pageSearch_h * 389;
  }
  var deoScroll = 0;
  var refreshIntervalId = setInterval(function() {
    if (deoScroll < sizeDeo_H / 1.96464646464 * 34) {
      deoScroll = deoScroll + sizeDeo_H / 1.96464646464;
      $('.deo').css({
        'background-position': '-' + deoScroll + 'px 0'
      })
    } else {
      $('.deo').css({
        'background-position': 0 + 'px 0px'
      })
      clearInterval(refreshIntervalId);
    }
  }, 15)
})
});
http://www.ex.ua/719362048879 -cссылка на архив
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
25.07.2016, 12:37
Rikko123, архив на форум залейте
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
25.07.2016, 23:56  [ТС]
Загрузил)
0
0 / 0 / 2
Регистрация: 04.02.2015
Сообщений: 54
26.07.2016, 00:02  [ТС]
Архив во вложение
Вложения
Тип файла: zip examples.zip (3.42 Мб, 6 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.07.2016, 00:02
Помогаю со студенческими работами здесь

Красивое появление при скроле
Здравствуйте, делаю лендинг.. Хотелось бы красиво оформить выезд элементов при скроле до определенного элемента.. на css3 или js.. ...

Изменение контента при скроле
Приветствую. Появился вопрос.Как сделать,что бы при скроле страницы менялся контент на сайте(К примеру h2 заголовок) при этом он...

Фиксированное меню при скроле
Есть скрипт: $(function(){ $(window).scroll(function() { var top = $(document).scrollTop(); if (top &lt; 160)...

Изменение фона при скроле
Всем привет! Такой вопрос, уже долго мучусь, подскажите! Есть сайт http://www.asos.com/ru/ когда заходишь, там будет видно что при...

Смена backgroun-color при скроле
Здравствуйте, подскажите как можно реализовать подобную вещь: есть блоки (обязательно более двух, в моем случаем 4ре), у всех разный цвет...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru