Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
16 / 16 / 7
Регистрация: 07.07.2014
Сообщений: 228

В поисках "не жручих" падающих снежинок

21.12.2015, 17:59. Показов 1058. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет

Захотелось на сайт снежинок падающих пустить, как у этих ребят, но взглянув сколько ЦП сжирает Jquery Snowfall, вариант отпал. А желание не покидает)

Может кто-нибудь знает, есть ли какой гуманный аналог?
Миниатюры
В поисках "не жручих" падающих снежинок  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.12.2015, 17:59
Ответы с готовыми решениями:

Анимация падающих снежинок в C
Здравствуйте! Нужно написать программу, которая создает анимацию падающего снега из символов. У меня никак не получается заставить их...

Анимация падающих снежинок
uses GraphABC; begin Setwindowsize(800,600); clearwindow(clMediumTurquoise); SetPenColor (clMidnightBlue); SetPenWidth(3); ...

Динамическая графика: анимация падающих снежинок
изобразить анимацию с graphABC падающих снежинок (чтобы каждая падала с верхней части экрана до нижнего)

9
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
21.12.2015, 19:16
Квас, http://www.jqueryrain.com/?CJwIdqnK
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
21.12.2015, 19:28
Квас, в стилях устанавливаете body {visibility: hidden}
а в титуле дописываете "извините, но всё занесло новогодними снежинками, которые растают к 8 марта... осталось ХХ дней YY часов ZZ минут"

дешево и сердито
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
21.12.2015, 21:01
вообще меня бесят все эти снежки, новогодние шапки на логотипах и прочая дребедень, которая в действительности только сжирает процессор(как в вашем случае)
я бы их делал на канвазе, а не на dom
поскольку и так известно, что dom медленный, а там ещё к ним анимация прикручена, к каждой, мать её, снежинке
да ещё и на jq
короче это называется "сдохни комп, а я в снежки поиграю"

я могу предложить решение на css, но оно конечно будет медленнее, чем у Padimanskas
0
16 / 16 / 7
Регистрация: 07.07.2014
Сообщений: 228
21.12.2015, 23:12  [ТС]
Цитата Сообщение от BANO Посмотреть сообщение
я могу предложить решение на css, но оно конечно будет медленнее, чем у Padimanskas
Я не шибко разбираюсь в сложных сплетениях css, скачал архив чтобы посмотреть и ничего не понял. Открывается белый лист со словом snowfall вверху и возможностью поставить галочку. Как их проверить?

Вариант Padimanskasа понравился, вообще не жрёт почти. Настроил размеры,кол-во,скорость - закинул на сайт, но заменило лишь background своим фиолетовым небом и снежинки не попадают на содержимое сайта, а работают тоже только как фон background.
-Кто нибудь сможет помочь допилить скрипт, чтобы background остался мой, а снежинки падали спереди содержимого всего сайта, как у вышеупомянутых prestigio?

Где-то здесь оно кроется:
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
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
snow = {
    count: 60,
    delay: 10,
    flutter: 0.2,
    wind: 1.0,
    w1: 1,
    minSpeed: 0.3,
    maxSpeed: 4,
    cv: null,
    flakes: [],
    toggle: function() {
        if(window.snowtimer)
            snow.stop();
        else
            snow.start();
    },
    resize: function() {
        snow.cv.width = innerWidth;
        snow.cv.height = innerHeight;
        snow.gt = snow.ct.createLinearGradient(0,0,0,snow.cv.height);
        snow.gt.addColorStop(0.0, '#6666ff');
        snow.gt.addColorStop(1.0, '#ffffff');
        snow.ct.fillStyle = snow.gt;
    },
    start: function() {
        snow.cv = document.createElement('canvas');
        snow.cv.width = snow.cv.height = 10; // set initial size
        snow.cv.id = 'backgroundSnowCanvas';
        document.body.appendChild(snow.cv);
        snow.createFlake();
        snow.ct = snow.cv.getContext('2d'),
        snow.cv.style.position = 'absolute';
        snow.cv.style.top = 0;
        snow.cv.style.left = 0;
        snow.cv.style.zIndex = -1;
        snow.resize();
        var c = snow.count;
        snow.flakes = [];
        do {
            snow.flakes.push(new snow.flake());
        } while(--c);
        snow.ct.fillRect(0,0,snow.cv.width,snow.cv.height);
        window.snowtimer = window.setInterval(snow.draw, snow.delay);
        window.addEventListener('resize',snow.resize);
    },
    stop: function() {
        window.clearInterval(window.snowtimer);
        var c = document.getElementById('backgroundSnowCanvas');
        c.parentNode.removeChild(c);
        window.snowtimer=snow=null;
    },
    draw: function() {
        var ct = snow.ct, f = snow.flakes, c = snow.count;
        ct.fillRect(0,0,snow.cv.width,snow.cv.height);
 
        do {
            if(f[--c].draw(ct) && ++fdone) { };
        } while(c);
        snow.wind += Math.cos(snow.w1++ / 180.0);
    },
    flake: function() {
        this.draw = function(ct) {
            ct.drawImage(snow.flakeImage,this.x + snow.wind,this.y,this.sz,this.sz);
            this.animate();
        };
        this.animate = function() {
            this.y += this.speed;
            this.x += this.flutter * Math.cos(snow.flutter * snow.flutter * this.y);
            if(this.y > innerHeight)
                this.init(1);
        };
        this.init = function(f) {
            this.speed = snow.minSpeed + (Math.random() * (snow.maxSpeed - snow.minSpeed));
            this.sz = ~~(Math.random() * 40) + 20;
            this.flutter = ~~(Math.random() * snow.flutter * (60-this.sz));
            this.x = (Math.random() * (innerWidth + this.sz)) - this.sz;
            this.y = f ? -this.sz : Math.random() * innerHeight;
        };
        this.init();
    },
    createFlake: function() {
        snow.flakeImage = document.createElement('canvas');
        snow.flakeImage.width = snow.flakeImage.height = 440;
        var c = snow.flakeImage.getContext('2d');
        c.fillStyle = '#fff';
        c.translate(20,20);
        c.beginPath();
        c.rect(-5,-20,10,40);
        c.rotate(Math.PI / 3.0);
        c.rect(-5,-20,10,40);
        c.rotate(Math.PI / 3.0);
        c.rect(-5,-20,10,40);
        c.closePath();
        c.fill();
    },
};
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
22.12.2015, 00:04
Квас, к сожалению скрипт Padimanskas работает только для бекграунда, а снежинки как на том сайте не получится сделать не затратив на них много процессора
так что думайте
0
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
22.12.2015, 00:28
Цитата Сообщение от Квас Посмотреть сообщение
и снежинки не попадают на содержимое сайта
Чтобы снежинки оставались на элементах, нужно выполнить проверку коллизий. Обычный AABB усложнит код в разы, а это время.
https://jsfiddle.net/38b9r1n5/
0
16 / 16 / 7
Регистрация: 07.07.2014
Сообщений: 228
22.12.2015, 10:33  [ТС]
Понятно. Хорошо, остановился на фоне:

Цитата Сообщение от Padimanskas Посмотреть сообщение
https://jsfiddle.net/38b9r1n5/
Почему, когда заменяешь этот фон на свой бесшовный (.jpg)
JavaScript
1
background.src = 'https://dl.dropbox.com/s/tfnp41sf8cgfesx/abstract_minimalistic_digital_art.jpg';
снежинки перестают падать?

Добавлено через 1 час 2 минуты
В общем да, с фоном у меня неразбериха. Ведь он уже был на сайте, получается в скрипте снега его вообще надо убрать. Удаляю упоминания о background там, фон сайта родной возвращается, но снежинки исчезают(

Добавлено через 1 час 5 минут
на css тоже жрёт ресурсы похоже
http://pcvector.net/uploads/de... /snow.html
http://www.webmasters.by/image... index.html

Пока этот вариант https://jsfiddle.net/38b9r1n5/ крайне привлекателен относительно испытанных, только с отключением фоновой картинки непонятно
0
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
22.12.2015, 17:03
Цитата Сообщение от Квас Посмотреть сообщение
только с отключением фоновой картинки непонятно
Можно попробовать установить альфа канал фонового цвета в ноль snow.ct.fillStyle = 'rgba(0,0,0,0)' или
snow.ct.globalAlpha = 0
Кстати, код этого плагина не мой и вряд ли я позволю себе писать подобные говоноляпы D
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,530
25.12.2015, 08:03
Не знаю как мой скрипт насчёт пожрать, но судя по дате и количеству скачиваний, BANO совершенно прав, умных таки много.
Подскажите как обновить параметр скрипта?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.12.2015, 08:03
Помогаю со студенческими работами здесь

Написать программу имитации падающих снежинок
Ребят выручайте. Нужно написать программу имитации падающих снежинок, но при запуске появляется просто черный экран,снежинок нет. unit...

Анимация снежинок
Подскажите как доделать, а точнее сделать ;) программку, пожалуйста. Программа должна изображать падающий снег. Пользователь вводит...

Рисования снежинок
Приложение для рисования снежинок: цвет формы - синий; при щелчке мыши на этом месте должна появляться снежинка белого цвета с 8-ю лучиками.

создание движущихся снежинок)
да да .. давайте создадим движущиеся снежинки .. в честь предшествия нового года. идея есть .. план примерно такой.. 1)...

Анимация снежинок (снегопад)
Всем привет!Помогите сделать анимацию в Builder,снегопад.Я рисую снежинку(круг,эллипс)и надо что бы у нее было движение в низ появление...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru