Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 12.01.2021, 22:45   #1
JPinkman
Новичок
Джуниор
 
Регистрация: 12.01.2021
Сообщений: 2
Печаль JS код не работает в мобильной версии

Всем привет!
JQuery coundown plugin на ПК и IOS работает, а на Andoid Chrome с телефона не работает.
Работаю я на Yii2. Заранее спасибо.

$counter = "
$(function($){
$('#counter').countdown({
image: '" . Yii::$app->controller->module->assetsUrl . "/images/digits.png" . "',
startTime: '" . gmdate("i:s", $seconds) . "',
timerEnd: function($){
$('#end').val('1');
$('#quiz-form').submit();
},
format: 'mm:ss'
});
});

/*
* jquery-counter plugin
*
* Copyright (c) 2009 Martin Conte Mac Donell <Reflejo@gmail.com>
* Dual licensed under the MIT and GPL licenses.
* http://docs.jquery.com/License
*/
jQuery.fn.countdown = function(userOptions)
{
// Default options
var options = {
stepTime: 60,
// startTime and format MUST follow the same format.
// also you cannot specify a format unordered (e.g. hh:ss:mm is wrong)
format: "dd:hh:mm:ss",
startTime: "01:12:32:55",
digitImages: 6,
digitWidth: 53,
digitHeight: 77,
timerEnd: function(){},
image: "" . Yii::$app->controller->module->assetsUrl . "/images/digits.png"
};
var digits = [], interval;



// Draw digits in given container
var createDigits = function(where)
{
var c = 0;
// Iterate each startTime digit, if it is not a digit
// we\'ll asume that it\'s a separator
for (var i = 0; i < options.startTime.length; i++)
{
if (parseInt(options.startTime[i]) >= 0)
{
elem = $('<div id="cnt_' + i + '" class="cntDigit" />').css({
height: options.digitHeight * options.digitImages * 10,
float: 'left', background: 'url(\'' + options.image + '\')',
width: options.digitWidth});
digits.push(elem);
margin(c, -((parseInt(options.startTime[i]) * options.digitHeight *
options.digitImages)));
digits[c].__max = 9;
// Add max digits, for example, first digit of minutes (mm) has
// a max of 5. Conditional max is used when the left digit has reach
// the max. For example second "hours" digit has a conditional max of 4
switch (options.format[i]) {
case 'h':
digits[c].__max = (c % 2 == 0) ? 2: 9;
if (c % 2 == 0)
digits[c].__condmax = 4;
break;
case 'd':
digits[c].__max = 9;
break;
case 'm':
case 's':
digits[c].__max = (c % 2 == 0) ? 5: 9;
}
++c;
}
else
elem = $('<div class="cntSeparator"/>').css({float: 'left'})
.text(options.startTime[i]);

where.append(elem)
}
};

// Set or get element margin
var margin = function(elem, val)
{
if (val !== undefined)
return digits[elem].css({'marginTop': val + 'px'});

return parseInt(digits[elem].css('marginTop').replace('px', ''));
};

// Makes the movement. This is done by "digitImages" steps.
var moveStep = function(elem)
{
digits[elem]._digitInitial = -(digits[elem].__max * options.digitHeight * options.digitImages);
return function _move() {
mtop = margin(elem) + options.digitHeight;
if (mtop == options.digitHeight) {
margin(elem, digits[elem]._digitInitial);
if (elem > 0) moveStep(elem - 1)();
else
{
clearInterval(interval);
for (var i=0; i < digits.length; i++) margin(i, 0);
options.timerEnd();
return;
}
if ((elem > 0) && (digits[elem].__condmax !== undefined) &&
(digits[elem - 1]._digitInitial == margin(elem - 1)))
margin(elem, -(digits[elem].__condmax * options.digitHeight * options.digitImages));
return;
}
margin(elem, mtop);

if(elem == 3)
{
if(margin(elem) == -4081 || margin(elem) == -3696 || margin(elem) == -3234 || margin(elem) == -2772 || margin(elem) == -2310
|| margin(elem) == -1848 || margin(elem) == -1386 || margin(elem) == -924 || margin(elem) == -462 || margin(elem) == 0)
{
seconds = $('#seconds').val();
$('#seconds').val(--seconds);
//alert($('#seconds').val());
}
}

if (margin(elem) / options.digitHeight % options.digitImages != 0)
setTimeout(_move, options.stepTime);

if (mtop == 0) digits[elem].__ismax = true;
}
};

$.extend(options, userOptions);
this.css({height: options.digitHeight, overflow: 'hidden'});
createDigits(this);
interval = setInterval(moveStep(digits.length - 1), 1000);
};
";

$scriptquiz =
'
$(".pagination li a").click(function($){
var page = parseInt($(this).attr("data-page")) + 1;
$("#page").val(page);
$("#quiz-form").submit();
return false;
});
$(\'#submitButton\').click(function ($){
if(!confirm(\'Are you sure you want to finish the test?\'))
return false;
$(\'#end\').val(\'1\');
})
';
$this->registerJs($counter, View::POS_END, 'counterjs');
$this->registerJs($scriptquiz, View::POS_END, 'quizjs');
JPinkman вне форума Ответить с цитированием
Старый 13.01.2021, 02:48   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 3,740
По умолчанию

Есть специальные теги для кода - используйте их.
Не работает - это как? Ошибку выдает в консоли, или что?
ADSoft вне форума Ответить с цитированием
Старый 13.01.2021, 11:17   #3
JPinkman
Новичок
Джуниор
 
Регистрация: 12.01.2021
Сообщений: 2
По умолчанию

ADSoft, Просто не отображается, хоть и само время countdown-a истекает, те счетчик работает, но не отображается. Еще интересно то, что в мобильной версий Mozilla все отображается, но вот Chrome и Opera не отображают.
А какие это тэги? Можете по подробнее?
JPinkman вне форума Ответить с цитированием
Старый 13.01.2021, 12:05   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 3,740
По умолчанию

https://yadi.sk/d/KDfZoWP_vnVzVw

в консоли что нибудь показывает? ошибку там или еще чего?
ADSoft вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация кнопок в мобильной версии Anna1991 HTML и CSS 1 03.12.2018 17:55
Как подогнать код яндекс денег под ширину мобильной версии сайта Михаил Иркутск PHP 2 04.12.2017 21:14
Не работает механизм в мобильной версии IvanAkimov WordPress и другие CMS 0 18.09.2017 17:27
Не работает меню "гамбургер" в мобильной версии сайта. neo_1987 JavaScript, Ajax 0 21.02.2017 08:19
Не работает код на денвере версии 4.3.6 Kasper1 PHP 3 07.04.2011 19:16


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS