function doubleRoll(winner) { var rollPositions = { 0: -10178, 1: -10240, 2: -10366, 3: -10492, 4: -10618, 5: -10744, 6: -10870, 7: -9676, 8: -9802, 9: -9928, 10: -10054, 11: -10304, 12: -10430, 13: -10556, 14: -10682, 15: -10808, 16: -10934, 17: -9738, 18: -9864, 19: -9990, 20: -10116 } var roll = rollPositions[winner]; $('.roulette_table').css('transition', '10s cubic-bezier(.25,0,.5,1)'); $(".roulette_table").css({ "margin-left": "" + roll + "px", }); setTimeout(function() { $('.roulette_table').css('transition', 'none'); $(".roulette_table").css({ "margin-left": "" + (roll + 9238.5) + "px", }); }, 10500); } #round_draw_pointer_mid { position: absolute; top: 0; margin: auto; width: 5px; height: 100%; background: #000; } .roulette_option { text-align: center; color: #fff; display: inline-block; width: 60px; height: 80px; margin-left: -1.6px; line-height: 25px; vertical-align: middle; border-top: 2px solid rgba(0,0,0,.5); } .roulette_table { width: 15000px; height: 150px; overflow-y: hidden; position: absolute; } #round_draw_pointer { height: 100%; width: 2px; position: absolute; left: 0; right: 0; margin: auto; z-index: 99; } .roulette_option span { font-size: 18px; font-weight: bold; background: rgba(255,255,255,.08); display: block; } .roulette_table_holder { width: 100%; /* если указать 810px, будет работать как надо! */ height: 80px; overflow: hidden; position: relative; }
Такс, значит задача стоит следующая.. есть рулетка в ней есть 20 разных позиций. Но так получилось, что делал эту рулетку под ширину 810px, а надо чтобы она растягивалась на весь экран те width = 100% Если поменять в стилях в селекторе .roulette_table_holder указать параметр width = 100%;, то рулетка будет работать как надо, но если указано 100% (как и надо), то она не адаптивна, и выпадает совсем другое число.
Ответ
В итоге переписал весь код. И сделал так:
function doubleRoll(winner) {
if ($(".roulette_table").length > 0) {
var number = winner;
if (number == 0) {
numberCalc = 0;
} else if (number > 10) {
numberCalc = 2 * (number - 10);
} else {
numberCalc = 2 * (number) - 1;
}
var numberMargin = 60 * numberCalc;
var randPos = Math.floor(Math.random() * 52) + 6
var centerMargin = -21 * 60 + 60 * 7 + $("#page_content").width() / 2;
var startMargin = centerMargin - numberMargin - randPos - 5458;
$(".roulette_table").css('left', startMargin + 'px').css('transition', '10s cubic-bezier(.25,0,.5,1)');
}
setTimeout(function() {
$('.roulette_table').css('transition', 'none');
$(".roulette_table").css({
"left": ""+ (startMargin + 5040) +"px",
});
}, 10500);
}
Комментариев нет:
Отправить комментарий