Поиск по сайту

Результаты поиска по тегам 'javascript'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Основной форум
    • Для начинающих
    • Проблемы верстки
    • Обсуждение работ
    • Работа форума
    • Флейм
  • Полезное
    • Библиотека полезных приемов и решений
    • Ресурсы
  • Веб-программирование
    • Javascript
    • Серверные технологии
    • СУБД
    • CMS
  • Работа: спрос, предложение, вакансии
    • Коммерческие услуги

Календари

  • IT events in Ukraine
  • IT events in Russia
  • События форума

Блоги

  • CMS (Системы управления контентом)

Группы меток

  • Разработчики
  • Front-end
  • Back-end
  • Обучение
  • Ищу работу
  • Предлагаю работу



Фильтр по количеству...

Найдено 250 результатов

  1. Есть код, не знаю из-за чего начал капризничать, толь из-за Joomla 3, еще чего, не пойму, помогите разобраться
  2. Всем привет! Не так давно я задавал вопрос по поводу связывание внутри ng-repeat. Проблема была в том, что внутри блока с ng-repeat angular создает собственный scope для переменных внутри него и никак не привязывает их к переменным в scope контроллера. Вот пример кода представления: <li ng-repeat="item in items"> <div>{{item.name}}</div> <input ng-model="newItemName"></li>Не смотря на то, что в scope контроллера есть переменная newItemName, она никак не связана с той, что используется в input. Проблему я решил следующим образом: <li ng-repeat="item in items"> <div>{{item.name}}</div> <input ng-model="$parent.newItemName"></li>Таким образом angular не создает собственный экземпляр newItemName, а привязывает к переменной в scope контроллера. Но, когда я решил вынести эту лишку в отдельную директиву, почему-то такой подход перестал работать (angular больше не привязывает эту переменную к той, что находится в scope контроллера), не смотря на то, что в свойстве scope директивы стоит true. Не подскажете, как решить эту проблему?
  3. Всем привет! Интересует вопрос по создания многопользовательского приложения на AngularJS совместно с Firebase. Имею представление о том, как с ней работать, как сделать регистрацию и авторизацию, но не знаю, как лучше организовать структуру хранения данных. Приложение - простенький todolist с набором списков задач. Нужно, чтобы у каждого пользователя был свой набор списков и задач соответственно. Как лучше все это оформить, чтобы получение нужных данных не было слишком трудозатратным? Под каждого пользователя при регистрации создавать свой объект, в котором и хранить массив его списков или может как-то иначе? Был бы рад услышать мнение тех, кто уже сталкивался с подобной задачей или получить пару ссылок на статьи, если у кого-то вдруг завалялись=)
  4. Меняем класс у элемента

    Ребят, приветствую! Реализовал задачу на js, чтоб, при клике по элементу, менялся его класс: $('.categories-show-in').click(function() { $('.categories-show-in').attr('class', 'categories-show-out');});$('.categories-show-out').click(function() { $('.categories-show-out').attr('class', 'categories-show-in');});При первом клике, да, класс у элемента меняется на categories-show-out, но при последующих кликах класс у элемента не меняется. Помогите решить проблему. P.S. Мне нужно, чтоб класс был заменен, а не дописан
  5. Вопрос на тему JQuery Trickshots

    Всем привет! Такой вот вопрос по JQuery Trickshots: Для чего в setTimeout использовать такую запись 'r('+f+')' и почему именно 9 миллисекунд? r(function(){ alert('DOM Ready!');})function r(f){/in/.test(document.readyState)?setTimeout('r('+f+')',9):f()}
  6. Проблема с AngularJS и Firebase

    Всем, привет! На днях столкнулся с такой вот проблемой: Есть у меня объект task, одно из полей которого меняется при клике пользователя по кнопке. Этот самый task содержится в 4 разных массивах. То есть в каждом из этих массивов есть элемент ссылающийся на на этот самый task. Один из этих массивов мне нужно синхронизировать с firebase. Вот собственно код: var taskIndex = $scope.findTask(taskId), currentProject = $rootScope.projects[$rootScope.selectedProjectIndex], realProject = $rootScope.projects[findProject(projectId)];if (currentProject.tasks[taskIndex].done) { currentProject.tasks[taskIndex].done = false;} else { currentProject.tasks[taskIndex].done = true;}$rootScope.projects.$save(realProject);После изменения task внутри currentProject изменяются еще 2 объекта из других массивов, а объект task в realProject не изменяется. Если убрать последнюю строку кода, то все работает, но не сохраняется в firebase. Причем при первом клике все стабильно и все везде меняется. А при всех следующих три массива, которые не взаимодействуют с firebase работают отдельно от того, что с ней взаимодействует. Понял, что после сохранения объект task в массиве realProject изменяется. Потому что до сохранения он равен(===) экземпляру из других массивов, а после нет. Кто-нибудь знает как решить эту проблему?
  7. оформление кода в модули

    помогите пожалуйста советом, а лучше примерами написал ajax-обработчики всего для трёх действий(CUD) и ужаснулся. хоть старался и не говнокодить, но жуткая простыня кода получилась. и подобного кода придётся написать в 5-10 раз больше подскажите пожалуйста как правильные пацаны организуют js-код в модули или в другие удобные структуры. существуют какие-нибудь примеры хорошего стиля? или пожалуйста поскажите что можно хорошего с этим кодом сделать. первая мысль у меня была разбрасывать по отдельным файлам, а потом на страничке подключать это хозяйство, но это увеличивает количество запросов к серверу только не советуйте использовать ангуляры и прочие подобные штуки
  8. Хотел создать тему в форуме по сценариям, но толком не смог сформулировать даже заголовок, стало стыдно и решил написать пока здесь. Прочитал уже много теории по экме (циклы, инструкции, операторы, функции, массивы, объекты, классыи т.д.) но никак руки не доходят до клиентской части. Если быть откровеннее — загнулся на замыканиях (хотя вроде бы и понял в чем суть) и прочих вещах. Все это время для вставки в документ использовал метод write(). В интернете часто мелькало что-то вроде innerHTML... В общем формулирую вопрос: Нужно научиться вставлять генерируемый сценарием контент в указанное место, а не как это делает document.write(''а именно, он вставляет там, где написан скрипт"). Как это дело? Дело в том, что сил уже нет читать теорию. Хочется практики, и чтобы полезная была, а не "Ура, вы видите что в окне браузера появился ноль, вы не зря писали эти 150 строк кода и прочли 200 страниц книги".... Прошу прощения за многословность.
  9. Как это исправить?

    Здравствуйте помогите пожалуйста почему не работает меню и вкладка?http://likekino.net/1448-wtf-kakogo-cherta.html
  10. помогите пожалуйста советом на сайте каждый url содержит ?locale=ru или ?locale=enна странице есть переключатель, который меняет параметр locale на противоположный и перегружает страницу. я про помощи следующего скрипта пытаюсь на основе get-параметра присваивать класс active определённому элементу: $(document).ready(function() { var get = window.location.search, langContainer = $('.language_area'), rusToggler = $('#rus'), engToggler = $('#eng'); console.log(get); langContainer.find('a').removeClass('active'); if(get.indexOf('locale=ru')){ console.log(11); rusToggler.addClass('active'); }else{ console.log(22); engToggler.addClass('active'); }});проблема в том, что в адресной строке get-параметр меняется, а в скрипте - нет. то есть консоль всегда выводит: ?locale=enв чём может быть проблема?
  11. Всем привет! Требуется помощь с особенностями AngularJS. С особенностями связывания(ng-model) внутри директивы ng-repeat. На сколько я понял, при таком использовании возникают какие-то дочерние scope, которые никак не связаны со scope контроллера: <div ng-repeat="item in items"><input type="text" ng-model="myVar"/></div>Вопрос, собственно, в том, как все-таки связать в данном случае input'ы всех div'ов с перменной myVar? Нашел статью на хабре: http://habrahabr.ru/post/223529/ И вопрос на Toster'е: https://toster.ru/q/191877 Но так и не понял как применить эти знания в моем примере. Поскольку там идет речь о привязке элементов массива (или свойств элементов) к их экземплярам в scope контроллера. А в моем случае просто переменная, которая никак не связана с элементами массива.
  12. В чем разница?

    Привет! Не могу понять в чем разница, между вот этими двумя записями: getItems: function () { return [].concat(this._items); }getItems: function () { return this._items; } Это что-то вроде преобразования к массиву, если this._items не массив?
  13. Здравствуйте! Очень нужна помощь с JavaScript Необходимо сделать так, чтобы меню для сайта при изменении размера окна браузера меняло количество пунктов(*1) и те, которые не уместились в списке перемещались в выпадающий список в конце(**2). HTML-код такой: <ul class="Горизонтальное-Меню"> <li class="line"> <a href="/">Адреса магазинов</a> </li> <li class="line"> <a href="/">Оплата</a> </li> <li class="line"> <a href="/">Доставка</a> </li> <li class="line"> <a href="/">Сотрудничество</a> </li> <li class="more"> <a href="/">Ещё<input type="submit" name="more" value=""/></a> </li> </ul> <ul class="Выпадающий-Список"> <li class="submore"> <a href="//">Раздватри</a> </li> <li class="submore"> <a href="//">Четырепятьшесть</a> </li> <li class="submore"> <a href="//">Семьвосемьдевять</a> </li> <li class="submore"> <a href="//">Десять</a> </li> </ul> Может, можно сделать скрипт, который при определенной ширине экрана меняет класс элемента и перемещает его в другой список? Заранее благодарю вас за помощь! Фотографии прикрепила
  14. Callback-функции

    Всем привет! Сегодня понял, что я совсем не понимаю что такое callback функции и зачем они нужны. Представлял себе это также, как описано в этой статье: http://habrahabr.ru/post/151716/ Но когда стал разбираться, понял, что основной код автора этой статьи легко обходиться из без этой callback функции. И работает точно также. Просьба немного пояснить этот момент и скинуть пример кода, в котором нельзя было бы обойтись без callback функции. Или просто хорошую статью, где об этом можно почитать(желательно на русском, но можно и на английском) Спасибо!
  15. Монады в JavaScript. Что это?

    Всем привет! Интересует вопрос, больше касающийся, наверное, функционального программирования и функциональных языков. Но, как я понял, в JS тоже такое есть и люди этим пользуются. Прочитал несколько статей на тему того, что такое монады. Но в итоге так и не получил достаточного представление об этом инструменте. Поэтому, собственно, и решил обратиться сюда за помощь. Может кто подскажет и поможет разобраться в этом вопросе. Так что же такое монады? Зачем они нужны? Как их используют? И неплохо было бы какой-нибудь пример=) Всем откликнувшимся заранее спасибо!
  16. Наработает кнопка popover ;(

    Хочу сделать pop окно при наведении на иконку (.fa), создал файл bottom.js $(document).ready(function(){ $('.popover-dismissible').popover({ placement : ‘bottom’ });}); внутри <body> прописал путь <script type="text/javascript" src="js/bottom.js"></script> код html:<div class="row clearfix"><div class="section" id="blog"><div class="posts"><div class="title mbf"></div><!-- /title --> <div class="grid_6 omega"> <div class="member"><img src="images/фото1.jpg" alt=""><div class="member_info"><span class="m_title"> Иван Иванович </span><span class="m_skills"> должность <span class="small_line"></span><div class="social m_social set_two"><a href="skype:id" title="Skype"><i class="fa-skype"></i></a><a href="#" title="WeChat ID:"><i class="fa-comments"></i></a> <a href="#" tabindex="0" class="btn btn-warning popover-dismissible" role="button" data-toggle="popover" data-trigger="focus" title="Заголовок панели" data-content="Текст панели."><i class="fa-phone-square"></i></a> <a href='mailto:[email protected]?subject=Re_web'><i class="fa-envelope-o"></i></a></div></div></div></div> </div></div></div> Почему кнопка не работает =(
  17. как это исправить?

    помогите пожалуйста как это исправить? сайт:http://likekino.net/
  18. здравствуйте помогите пожалуйста,как сделать чтобы на других слайдерах тоже было как на первом демонстрацию можете увидеть на скрине ниже кода /* * Easy Paginate 1.0 - jQuery plugin * written by Alen Grakalic * http://cssglobe.com/'>http://cssglobe.com/ * * Copyright (c) 2011 Alen Grakalic (http://cssglobe.com) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * Built for jQuery library * http://jquery.com * */(function($) { $.fn.easyPaginate = function(options){ var defaults = { step: 4, delay: 100, numeric: true, nextprev: false, auto:false, loop:false, pause:4000, clickstop:true, controls: 'pagination', current: 'current', randomstart: false }; var options = $.extend(defaults, options); var step = options.step; var lower, upper; var children = $(this).children(); var count = children.length; var obj, next, prev; var pages = Math.floor(count/step); var page = (options.randomstart) ? Math.floor(Math.random()*pages)+1 : 1; var timeout; var clicked = false; function show(){ clearTimeout(timeout); lower = ((page-1) * step); upper = lower+step; $(children).each(function(i){ var child = $(this); child.hide(); if(i>=lower && i<upper){ setTimeout(function(){ child.fadeIn('fast') }, ( i-( Math.floor(i/step) * step) )*options.delay ); } if(options.nextprev){ if(upper >= count) { next.fadeOut('fast'); } else { next.fadeIn('fast'); }; if(lower >= 1) { prev.fadeIn('fast'); } else { prev.fadeOut('fast'); }; }; }); $('li','#'+ options.controls).removeClass(options.current); $('li[data-index="'+page+'"]','#'+ options.controls).addClass(options.current); if(options.auto){ if(options.clickstop && clicked){}else{ timeout = setTimeout(auto,options.pause); }; }; }; function auto(){ if(options.loop) if(upper >= count){ page=0; show(); } if(upper < count){ page++; show(); } }; this.each(function(){ obj = this; if(count>step){ if((count/step) > pages) pages++; var ol = $('<ol id="'+ options.controls +'"></ol>').insertAfter(obj); if(options.nextprev){ prev = $('<li class="prev">Назад</li>') .hide() .appendTo(ol) .click(function(){ clicked = true; page--; show(); }); }; if(options.numeric){ for(var i=1;i<=pages;i++){ $('<li data-index="'+ i +'">'+ i +'</li>') .appendTo(ol) .click(function(){ clicked = true; page = $(this).attr('data-index'); show(); }); }; }; if(options.nextprev){ next = $('<li class="next">Вперед</li>') .hide() .appendTo(ol) .click(function(){ clicked = true; page++; show(); }); }; show(); }; }); }; })(jQuery);
  19. В JS есть проблема, связанная с доступом к this в анонимной функции: this.test = 2 * 2;console.log(this.test); // 4callback(function(){ console.log(this.test); // undefined});Я знаю два способа её решения:Создать ссылку на this: this.test = 2 * 2;console.log(this.test); // 4var self = this;callback(function(){ console.log(self.test); // 4});Использовать метод "bind" для подмены this: this.test = 2 * 2;console.log(this.test); // 4callback((function(){ console.log(this.test); // 4}).bind(this));Первый способ мне не нравится из-за введение дополнительной переменной. Второй - из-за лишних скобок и в следствии этого ухудшения читабельности. Знаете ли вы более элегантные решения этой проблемы?
  20. Как исправить плейлист?HELP!

    помогите пожалуйста как исправить плейлист когда нажимаю на 3 сезон серии исчезают пример здесь http://likekino.net/1308-flesh-20-seriya.html вот js код var pos = 0;var poz = 0;var sea = null;var width = 600; var uvk = new Object();(uvk = { init: function () { if (/likekino.net/i.test(document.domain)) { document.write("<div id=\"uber-vk-write\" align=\"center\">\ <ul id=\"uber-vk-season\"><li id=\"seasons\"></li></ul>\ <div id=\"uber-vk-player\"></div>\ <ul id=\"uber-vk-serial\"></ul>\ <a href=\"javascript://\" class=\"prev\" onclick=\"uvk.move(1);\">prev</a>\ <a href=\"javascript://\" class=\"next\" onclick=\"uvk.move(0);\">next</a>\ <a href=\"javascript://\" class=\"prev1\" onclick=\"uvk.movie(1);\">prev</a>\ <a href=\"javascript://\" class=\"next1\" onclick=\"uvk.movie(0);\">next</a>\ <\/div>"); } }, player: function (a, { document.getElementById("uber-vk-player").innerHTML = ""; var uvk = document.createElement("iframe"); uvk.src = String(a); uvk.width = "680"; uvk.height = "300"; uvk.setAttribute("border", "0"); uvk.setAttribute("frameborder", "0"); uvk.setAttribute("scrolling", "no"); uvk.setAttribute("allowFullScreen", ""); document.getElementById("uber-vk-player").appendChild(uvk); if (document.getElementById("uber-vk-serial")) { c = document.getElementById("uber-vk-serial").getElementsByTagName("span"); for (var i = 0; i < c.length; i++) { c[i].removeAttribute("class"); } } b.setAttribute("class", "active"); }, season: function (a, { if (document.getElementById("uber-vk-season")) { c = document.getElementById("uber-vk-season").getElementsByTagName("span"); for (var i = 0; i < c.length; i++) { document.getElementById("season-" + i).style.display = "none"; c[i].removeAttribute("class"); } d = document.getElementById("season-" + a).getElementsByTagName("span"); for (var e = 1; e == d.length; e++) { document.getElementById("season-" + a).getElementsByTagName("span")[0].setAttribute("style", "display:none"); document.getElementById("uber-vk-write").getElementsByClassName("prev1")[0].setAttribute("style", "display:none"); document.getElementById("uber-vk-write").getElementsByClassName("next1")[0].setAttribute("style", "display:none"); } document.getElementById("season-" + a).style.display = ""; document.getElementById("season-" + a).getElementsByTagName("span")[0].click(); document.getElementById("season-" + a).getElementsByTagName("span")[0].setAttribute("class", "active"); if(e < d.length) { document.getElementById("uber-vk-write").getElementsByClassName("prev1")[0].setAttribute("style", "display:block"); document.getElementById("uber-vk-write").getElementsByClassName("next1")[0].setAttribute("style", "display:block"); } sea = a; } b.setAttribute("class", "active"); uvk.movie(1); }, show: function (a, b, c, d) { if(c > 1) { for (var i = 0; i < a; i++) { document.getElementById("uber-vk-serial").innerHTML += "<li id=\"season-" + i + "\"></li>"; document.getElementById("uber-vk-season").getElementsByTagName("li")[0].innerHTML += "<span onclick=\"uvk.season('" + i + "', this)\">" + c + " Сезон</span>"; } for (var i = 0; i < a; i++) { for (var j = 0; j < b[i].length; j++) { d = (d > 1) ? d : ''; var h = (d || d > 1) ? j + d - 1 : j; document.getElementById("season-" + i).innerHTML += "<span onclick=\"uvk.player('" + b[i][j] + "', this);\">Серия " + (h + 1) + "</span>"; } } document.getElementById("uber-vk-season").getElementsByTagName("span")[0].setAttribute("class", "active"); document.getElementById("uber-vk-season").getElementsByTagName("span")[0].click(); document.getElementById("season-0").getElementsByTagName("span")[0].click(); } else if(a.length > 1) { var s = a[0]-1; for (var i = 0; i < a.length; i++) { document.getElementById("uber-vk-serial").innerHTML += "<li id=\"season-" + i + "\" style=\"display:none;\"></li>"; document.getElementById("uber-vk-season").getElementsByTagName("li")[0].innerHTML += "<span onclick=\"uvk.season('" + i + "', this)\">" + (s + i + 1) + " Сезон</span>"; } for (var i = 0; i < a.length; i++) { for (var j = 0; j < b[i].length; j++) { d = (d > 1) ? d : ''; var h = (d || d > 1) ? j + d - 1 : j; document.getElementById("season-" + i).innerHTML += "<span onclick=\"uvk.player('" + b[i][j] + "', this);\">Серия " + (h + 1) + "</span>"; } } document.getElementById("uber-vk-season").getElementsByTagName("span")[0].setAttribute("class", "active"); document.getElementById("uber-vk-season").getElementsByTagName("span")[0].click(); document.getElementById("season-0").getElementsByTagName("span")[0].click(); document.getElementById("season-0").style.display = ""; } else { for (var i = 0; i < a; i++) { if(c == 0 || !c) { var out = (i + 1) + " Сезон"; } else if(c == 1) { var out = "Плеер " + (i + 1); } document.getElementById("uber-vk-serial").innerHTML += "<li id=\"season-" + i + "\" style=\"display:none;\"></li>"; document.getElementById("uber-vk-season").getElementsByTagName("li")[0].innerHTML += "<span onclick=\"uvk.season('" + i + "', this)\">" + out + "</span>"; } for (var i = 0; i < a; i++) { for (var j = 0; j < b[i].length; j++) { if(c == 0 || !c) { var out = "Серия"; } else if(c == 1) { var out = "Часть"; } d = (d > 1) ? d : ''; var h = (d || d > 1) ? j + d - 1 : j; document.getElementById("season-" + i).innerHTML += "<span onclick=\"uvk.player('" + b[i][j] + "', this);\">" + out + " " + (h + 1) + "</span>"; } } document.getElementById("uber-vk-season").getElementsByTagName("span")[0].setAttribute("class", "active"); document.getElementById("uber-vk-season").getElementsByTagName("span")[0].click(); document.getElementById("season-0").getElementsByTagName("span")[0].click(); document.getElementById("season-0").style.display = ""; } }, move: function (d) { var a, b; var butt = document.getElementById("seasons"); var widt = butt.offsetWidth; var left = butt.offsetLeft; if (d == 0) { clearTimeout(a); b = setInterval(function () { pos = pos - 10; if (pos >= (left - width) && pos >= -(widt - width)) { butt.style.left = pos + "px"; } else clearTimeout(; }, 15); } if (d == 1) { clearTimeout(; b = setInterval(function () { pos = pos + 10; if (pos <= (left + width) && pos <= 0) { butt.style.left = pos + "px"; } else clearTimeout(; }, 15); } }, movie: function (d) { var a, b; var butt = document.getElementById("season-" + sea); var widt = butt.offsetWidth; var left = butt.offsetLeft; if (d == 0) { clearTimeout(a); b = setInterval(function () { poz = poz - 10; if (poz >= (left - width) && poz >= -(widt - width)) { butt.style.left = poz + "px"; } else clearTimeout(; }, 15); } if (d == 1) { clearTimeout(; b = setInterval(function () { poz = poz + 10; if (poz <= (left + width) && poz <= 0) { butt.style.left = poz + "px"; } else clearTimeout(; }, 15); } }});function showOkno() { var a = ""; $("#oknouroka").dialog({ autoOpen: true, open: function (b, e) { a = $(this).find("iframe").attr("src") }, width: 700, modal: true, dialogClass: "trai", beforeClose: function (b, e) { $(this).find("iframe").attr("src", ""); $(this).find("iframe").attr("src", a) } })};
  21. Помощ для сайта

    здравствуйте помогите пожалуйста когда добовляю новый js код все другие не работают! http://likekino.net/
  22. Скачиваем файл с помощью Ajax!

    Всем, привет! Подскажите, кто сталкивался с подобной проблемой: Нужно скачать файл с сервера, но с помощью ajax запроса. Проблема заключается в том, что функция readfile() считывает содержимое файла и возвращает его в ajax запрос в качестве ответа. А нужно, чтобы файл скачивался. Вот, мой код $.ajax({ url: "../download.php", type: "POST", data: ({file: filepath}), dataType: "html", success: function(data, d) { if (d == 'success') { alert('Ура!'); } else { alert('Блин'); } }});<?php$filename = $_POST['file'];$ctype = 'text/plain';if (isset($filename) and file_exists($filename)) { header('Content-Type: '.$ctype.'; charset=utf-8'); header("Content-Disposition: attachment; filename=".$filename); if (ob_get_level()) { ob_end_clean(); } readfile($filename); exit(); } else { echo false; exit();}}Находил на форумах уже такие вопросы, но, к сожалению, так и не смог решить данную проблему. Заранее спасибо всем, кто откликнется!
  23. помогите пожалуйста исправить js код http://mvcreative.ru/blog/slajding_novostej_ucoz/2013-01-17-28сделал все как здесь написано но почему то такая ошибка
  24. помогите пожалуйста советом на страничке я использовал jquery-плагин fancybox2 для создания всплывающих окон. проблема в том, что не получается создать всплывающее окно поверх другого всплывающего окна например на указанной страничке можно: кликнуть по ссылке "список прикреплённых"(откроется всплывающее окно №1)и затем на "добавить"(откроется всплывающее окно №2)затем нажать крестик в верхнем правом углу окна №2. в результате закроются оба окна, а мне нужно чтобы закрылось только окно №2 если такое поведение окон невозможно реализовать при помощи этого плагина, то подскажите пожалуйста какой другой использовать
  25. Есть слайдер http://codepen.io/anon/pen/YPRQjo Как сделать на нем автоматическое перелистывание? В гугле много примеров на jQuery. Но хотелось бы сделать это на чистом JS или CSS (если такое возможно). При переключении слайдов переход должен быть плавным. (Хотел, чтобы свойство opacity менялось от 0 к 1 через анимацию, но что-то не получается)