Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.10.2018, 13:25
Интересующийся
Отправить личное сообщение для blazer-05 Посмотреть профиль Найти все сообщения от blazer-05
 
Регистрация: 24.02.2017
Сообщений: 18

Как изменить скрипт таймера?
Здравствуйте.
Помогите изменить скрипт этого таймера _https://e-timer.ru/ чтоб по истечении времени были не нули таймера как сейчас а выводилась запись к примеру "Акция закончилась".
Писал разработчикам этого скрипта но в ответ тишина.

Код скрипта
<script src="https://e-timer.ru/js/etimer.js"></script>
<script type="text/javascript">
	jQuery(document).ready(function() {
		jQuery(".eTimer").eTimer({
			etType: 0, etDate: "12.10.2018.0.0", etTitleText: "До окончания акции осталось:", etTitleSize: 20, etShowSign: 1, etSep: ":", etFontFamily: "Trebuchet MS", etTextColor: "#a3a3a3", etPaddingTB: 15, etPaddingLR: 15, etBackground: "#333333", etBorderSize: 0, etBorderRadius: 2, etBorderColor: "white", etShadow: " 0px 0px 10px 0px #333333", etLastUnit: 4, etNumberFontFamily: "Impact", etNumberSize: 35, etNumberColor: "white", etNumberPaddingTB: 0, etNumberPaddingLR: 8, etNumberBackground: "#11abb0", etNumberBorderSize: 0, etNumberBorderRadius: 5, etNumberBorderColor: "white", etNumberShadow: "inset 0px 0px 10px 0px rgba(0, 0, 0, 0.5)"
		});
	});
</script>
<div class="eTimer"></div>


Заранее спасибо.

Последний раз редактировалось blazer-05, 11.10.2018 в 14:09.
Ответить с цитированием
  #2 (permalink)  
Старый 11.10.2018, 14:52
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,729

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
/*
 * @name        eTimer
 * @version     1.1
 * @author      Ilia Grigorev
 * @email       giv13@bk.ru
 * @license     MIT License
 * https://e-timer.ru/
 */
;(function($) {
  var units = {
      en: ['Days', 'Hours', 'Minutes', 'Seconds'],
      ru: ['дней', 'часов', 'минут', 'секунд'],
      ua: ['днів', 'годин', 'хвилин', 'секунд'],
      kz: ['күн', 'сағат', 'минут', 'секунд'],
      sec: [86400, 3600, 60, 1]
    },
    defaults = {
      etType: 1,
      etDate: '0',
      etTitleText: '',
      etTitleSize: 14,
      etShowSign: 1,
      etSep: ':',
      etFontFamily: 'Arial',
      etTextColor: 'black',
      etPaddingTB: 0,
      etPaddingLR: 0,
      etBackground: 'transparent',
      etBorderSize: 0,
      etBorderRadius: 0,
      etBorderColor: 'transparent',
      etShadow: '',
      etLastUnit: 4,
      etNumberFontFamily: 'Arial',
      etNumberSize: 32,
      etNumberColor: 'black',
      etNumberPaddingTB: 0,
      etNumberPaddingLR: 0,
      etNumberBackground: 'transparent',
      etNumberBorderSize: 0,
      etNumberBorderRadius: 0,
      etNumberBorderColor: 'transparent',
      etNumberShadow: '',
	  onComplete:function(){}
    };

  $.fn.eTimer = function(options) {
    var config = $.extend({}, defaults, options);

    return this.each(function() {
      var element = $(this),
        date = config.etDate,
        dayNum = 2;

      element.date = function() {
        var now = new Date();
        if (config.etType == 1) {
          date = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);
        } else if (config.etType == 2) {
          var day = now.getDay();
          if (day == 0) day = 7;
          date = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 8 - day);
        } else if (config.etType == 3) {
          date = new Date(now.getFullYear(), now.getMonth() + 1, 1);
        } else {
          date = date.split('.');
          date = new Date(date[2], date[1] - 1, date[0], date[3], date[4]);
          if (Math.floor((date - now) / units.sec[0] / 1000) >= 100) dayNum = 3;
        }
      };

      element.layout = function() {
        var unit,
          elClass = element.attr('class').split(' ')[0];
        element.html('').addClass('eTimer').append('<div class="etTitle">' + config.etTitleText + '</div>');
        $.each(units.en, function(i) {
          if (i < config.etLastUnit) {
            unit = $('<div class="etUnit et' + this + '"></div>').appendTo(element).append('<div class="etNumber">0</div>').append('<div class="etNumber">0</div>').after('<div class="etSep">' + config.etSep + '</div>');
            if (i == 0 && dayNum == 3) unit.append('<div class="etNumber">0</div>');
            if (config.etShowSign == 1) unit.append('<div class="etSign">' + units.ru[i] + '</div>');
            if (config.etShowSign == 2) unit.append('<div class="etSign">' + units.en[i].toLowerCase() + '</div>');
            if (config.etShowSign == 3) unit.append('<div class="etSign">' + units.ua[i] + '</div>');
            if (config.etShowSign == 4) unit.append('<div class="etSign">' + units.kz[i] + '</div>');
          }
        });
        element.append('<style type="text/css">.' + elClass + ' {display: inline-block; line-height: normal; font-family: ' + config.etFontFamily + '; color: ' + config.etTextColor + '; padding: ' + config.etPaddingTB + 'px ' + config.etPaddingLR + 'px; background: ' + config.etBackground + '; border: ' + config.etBorderSize + 'px solid ' + config.etBorderColor + '; -webkit-border-radius: ' + config.etBorderRadius + 'px; -moz-border-radius: ' + config.etBorderRadius + 'px; border-radius: ' + config.etBorderRadius + 'px; -webkit-box-shadow: ' + config.etShadow + '; -moz-box-shadow: ' + config.etShadow + '; box-shadow: ' + config.etShadow + ';} .' + elClass + ' .etTitle {margin-bottom: 10px; font-size: ' + config.etTitleSize + 'px;} .' + elClass + ' .etUnit {display: inline-block;} .' + elClass + ' .etUnit .etNumber {display: inline-block; margin: 1px; text-align: center; font-family: ' + config.etNumberFontFamily + '; font-size: ' + config.etNumberSize + 'px; color: ' + config.etNumberColor + '; padding: ' + config.etNumberPaddingTB + 'px ' + config.etNumberPaddingLR + 'px; background: ' + config.etNumberBackground + '; border: ' + config.etNumberBorderSize + 'px solid ' + config.etNumberBorderColor + '; -webkit-border-radius: ' + config.etNumberBorderRadius + 'px; -moz-border-radius: ' + config.etNumberBorderRadius + 'px; border-radius: ' + config.etNumberBorderRadius + 'px; -webkit-box-shadow: ' + config.etNumberShadow + '; -moz-box-shadow: ' + config.etNumberShadow + '; box-shadow: ' + config.etNumberShadow + ';} .' + elClass + ' .etUnit .etSign {text-align: center; font-size: ' + (+config.etNumberSize / 2.5) + 'px;} .' + elClass + ' .etSep {display: inline-block; vertical-align: top; font-size: ' + config.etNumberSize + 'px; padding: ' + (+config.etNumberPaddingTB + +config.etNumberBorderSize) + 'px 5px;} .' + elClass + ' .etSep:last-of-type {display: none;}</style>').append('<style type="text/css">.' + elClass + ' .etUnit .etNumber {width: ' + $('.etNumber:visible').eq(0).css('width') + ';}</style>');
      };

      element.tick = function() {
        var timeLeft = Math.floor((date - new Date()) / 1000),
          unit;
        if (timeLeft < 0){
			try{ config.onComplete(); }catch(e){};
			clearInterval(element.data('interval'));
        }else {
          $.each(units.en, function(i) {
            if (i < config.etLastUnit) {
              unit = Math.floor(timeLeft / units.sec[i]);
              timeLeft -= unit * units.sec[i];
              if (i == 0 && dayNum == 3) {
                element.find('.et' + this).find('.etNumber').eq(0).text(Math.floor(unit / 100) % 10);
                element.find('.et' + this).find('.etNumber').eq(1).text(Math.floor(unit / 10) % 10);
                element.find('.et' + this).find('.etNumber').eq(2).text(unit % 10);
                if ((Math.floor(unit / 100) % 10) == 0) {
                  dayNum = 2;
                  element.find('.et' + this).find('.etNumber').eq(0).remove();
                }
              } else {
                element.find('.et' + this).find('.etNumber').eq(0).text(Math.floor(unit / 10) % 10);
                element.find('.et' + this).find('.etNumber').eq(1).text(unit % 10);
              }
            }
          });
        }
      };

      clearInterval(element.data('interval'));
      element.date();
      element.layout();
      element.tick();
      element.data('interval', setInterval(function() {
        element.tick()
      }, 1000));
    });
  };
})(jQuery);
</script>
<script type="text/javascript">
	jQuery(document).ready(function() {
const d=new Date();
		jQuery(".eTimer").eTimer({
			etType: 0, etDate: [
    d.getDate(),
    d.getMonth(),
    d.getFullYear(),
    d.getHours(),
    d.getMinutes() + 1
].map(function(v) {
    return v > 9 ? v : '0' + v;
}).join('.'), etTitleText: "До окончания акции осталось:", etTitleSize: 20, etShowSign: 1, etSep: ":", etFontFamily: "Trebuchet MS", etTextColor: "#a3a3a3", etPaddingTB: 15, etPaddingLR: 15, etBackground: "#333333", etBorderSize: 0, etBorderRadius: 2, etBorderColor: "white", etShadow: " 0px 0px 10px 0px #333333", etLastUnit: 4, etNumberFontFamily: "Impact", etNumberSize: 35, etNumberColor: "white", etNumberPaddingTB: 0, etNumberPaddingLR: 8, etNumberBackground: "#11abb0", etNumberBorderSize: 0, etNumberBorderRadius: 5, etNumberBorderColor: "white", etNumberShadow: "inset 0px 0px 10px 0px rgba(0, 0, 0, 0.5)",
			onComplete:function(){
				$('.eTimer').text('Акция закончилась');
			}
		});
	});
</script>
<div class="eTimer"></div>

upd. хз как заставить эту гадость нормально отсчитывать 60 секунд...

Последний раз редактировалось Nexus, 11.10.2018 в 14:59.
Ответить с цитированием
  #3 (permalink)  
Старый 11.10.2018, 14:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

blazer-05,
скачать плагин
найти строку
if (timeLeft < 0) clearInterval(element.data('interval'));

заменить полностью на
if (timeLeft < 0) {
              clearInterval(element.data('interval'));
              element.find('.etTitle').html("Акция закончилась").nextAll(':not(style)').remove()
        }
Ответить с цитированием
  #4 (permalink)  
Старый 11.10.2018, 15:07
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<div id="count"></div>
	<script>

	function sclPad(n, arr){
		return n+" "+arr[(n%100>4 && n%100<20)?2:[2, 0, 1, 1, 1, 2][(n%10<5)?n%10:5]];
	}

	(function tick(){
		var now = new Date(),
		end = new Date(2019,0,1); // тут дата
		ost = new Date(end - now),
		s = Math.floor(ost/1000),
		m = Math.floor(s/60),
		h = Math.floor(m/60),
		d = Math.floor(h/24);
		s = s%60;
		m = m%60;
		h = h%24;

			count.innerHTML = ost>0 ?'До окончания акции осталось: <br>'+
					sclPad(d, ['день', 'дня', 'дней'])+
			' '+sclPad(h, ['час', 'часа', 'часов'])+
			' '+sclPad(m, ['минута', 'минуты', 'минут'])+
			' '+sclPad(s, ['секунда', 'секунды', 'секунд']):
			'Акция закончилась'
			;

		setTimeout(tick, 1000);
	})();

</script>
Ответить с цитированием
  #5 (permalink)  
Старый 11.10.2018, 15:22
Интересующийся
Отправить личное сообщение для blazer-05 Посмотреть профиль Найти все сообщения от blazer-05
 
Регистрация: 24.02.2017
Сообщений: 18

Сообщение от рони Посмотреть сообщение
blazer-05,
скачать плагин
найти строку
if (timeLeft < 0) clearInterval(element.data('interval'));

заменить полностью на
if (timeLeft < 0) {
              clearInterval(element.data('interval'));
              element.find('.etTitle').html("Акция закончилась").nextAll(':not(style)').remove()
        }
Спасибо все получилось!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как изменить скрипт ibutterfly777 Общие вопросы Javascript 0 10.10.2014 12:02
Как передать 2 значения в скрипт? useruser jQuery 1 07.10.2014 11:32
Как показать страницу, пока скрипт работает? sitar32 Элементы интерфейса 13 28.08.2014 11:18
Подскажите как изменить скрипт календаря natalya84i Элементы интерфейса 2 02.12.2012 21:08
Скрипт сворачиваемых блоков, как доработать? varik Общие вопросы Javascript 0 25.10.2012 10:00