Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
4
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
891
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
946
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
936
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1723
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4380
0
Помогите пожалуйста решить задачи
24th November, 23:53
6084
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4308
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2598
0
Результаты поиска
Найдено результатов: 1
Некорректный скрипт для закрытия блока
Здравствуйте! Подскажите, пожалуйста, как правильно прописать скрипт для кнопки закрытия попап-окна в данном коде?
Сейчас при раскрытии окна не вылезает крестик закрытия под назначенным классом .close-wheel, так что закрыть этот блок невозможно и выйти обратно на сайт нельзя.
За "крестик" отвечает участок кода в самом низу под //Скрыть блок
Что и где здесь не так?
/*Общий Контейнер*/
.wheel_wrp {
width: inherit;
box-sizing: border-box;
box-shadow: 0 0 0 10px #ffffff, 0 0 15px 3px #ababab;
position: relative;
overflow: hidden;
border-radius: 50%;
}
/*Ось колеса в центре*/
.wheel_wrp:after {
content: "";
width: 35px;
height: 35px;
border-radius: 50%;
background-color: #fff;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
/*Оформление сектора*/
.wheel_sector{
width: 0px;
height: 0px;
border-style: solid;
position: absolute;
top: 0;
display: flex;
justify-content: center;
align-items: center;
}
/*Оформление разделительных линий*/
.wheel_line {
background-color: #fff; /*Цвет линии*/
transform: rotate(0deg);
height: 4px;
position: absolute;
z-index: 99;
}
/*Оформление текста*/
.wheel_textcont {
position: absolute;
top: 0;
z-index: 99999;
display: flex;
flex-direction: column-reverse;
justify-content: flex-end;
align-items: center;
font-family: 'Gilroy',Arial,sans-serif;
font-weight: 600;
color: #000;
font-size: 16px;
line-height: 1.2;
text-align: center;
}
.wheel_textcont div {
transform: rotate(-90deg);
margin-top: 35px;
width: 150px;
}
/*Иконка*/
.wheel_textcont img {
width: 35px;
transform: rotate(-90deg);
margin-top: 15px;
}
/*Адаптив текст + иконка*/
@media screen and (max-width:640px){
.wheel_textcont div {
transform: rotate(-90deg);
margin-top: 35px;
width: 120px;
font-size: 13px;
line-height: 1.2;
text-align: center
}
.wheel_textcont img {
width: 15px;
margin-top: 15px;
}
}
@media screen and (max-width:480px){
.wheel_textcont img {
width: 25px;
margin-top: 10px;
}
}
.spin_wheel , .open-wheel , .close-wheel{ cursor:pointer}
.spin_wheel { transition: all 0.2s linear}
.spin_wheel:hover {filter: sepia(1)}
.form_noactive{
opacity:0.4;
pointer-events:none;
}
.wheel_form .t-input-subtitle,
.wheel_form input.t-input{
text-align: center;
}
/*Показать блок*/
.wheel-pos{
position:fixed;
width:100%;
top:0;
z-index:999;
}
.wheel-time{transition: transform 0.5s ease-in-out}
.slide-wheel{transform: translateX(-100%)}
.wheel-open-body{overflow:hidden}
<script>
$( document ).ready(function() {
//Список секторов : Цвет - Текст - ссылка на иконку
let wheelOption = [
['#F59CA9' , '-1000 руб<br>любая услуга' , 'https://static.tildacdn.com/tild3732-3366-4666-b137-636632616132/901435.svg'],
['#BF75BA' , 'Массаж лица<br>в подарок' , 'https://static.tildacdn.com/tild6564-3832-4466-a662-333733396635/3189701.svg'],
['#F59CA9' , '-10%<br>любая услуга' , 'https://static.tildacdn.com/tild3364-3432-4437-b065-663536363437/4062925.svg'],
['#BF75BA' , 'Зона S<br>бесплатно' , 'https://static.tildacdn.com/tild6631-3132-4330-b130-643839333161/3989895.svg'],
['#F59CA9' , '-15%<br>любая зона' , 'https://static.tildacdn.com/tild3830-3439-4764-b831-313939346337/3095126.svg'],
['#BF75BA' , '30 мин<br>массажа' , 'https://static.tildacdn.com/tild6239-3933-4839-a666-303739343233/1404945.svg'],
['#F59CA9' , 'Карбокситерапия<br>для лица' , 'https://static.tildacdn.com/tild6666-3931-4639-b563-306134666563/2513205.svg'],
['#BF75BA' , '-50%<br>массажа' , 'https://static.tildacdn.com/tild3035-3230-4136-a235-316639663465/2333041.svg'],
];
setTimeout(function(){
window.dispatchEvent(new Event('resize'));
}, 1000);
//Создаём элемент в Zero
let sector = wheelOption.length;
$('.wheelfortune').append('<div class="wheel_wrp"></div>');
$('.wheelfortune').html($('.wheel_wrp'));
let wheelRec = $('.wheelfortune').closest('.t-rec');
wheelRec.addClass('wheel-pos slide-wheel');
$('.close-wheel').fadeOut(200);
//Кол-во оборотов до остановки
let maxRevolution = 20;
//Время вращения
let spinTime = 5;
let spinFinish = false;
let resizeTxt;
let diameter;
//Создание колеса
function creatingWheel(){
//Диаметр колеса
diameter = $('.wheel_wrp').width();
//Угол сектора
let angle = Number(((360*Math.PI)/(sector*180)).toFixed(3));
//Катет сектора
let sectorHalfWidth = 0.5*diameter*Math.tan(angle/2);
//Заполняем сектора
for (let i=0; i<sector; i++){
$('.wheel_wrp').append('<div class="wheel_sector bg-sector'+i+'"></div><div class="wheel_line line-sector'+i+'"></div><div class="wheel_textcont text-sector'+i+'"><div></div><img src='+wheelOption[i][2]+'></div>');
//Формируем угол поворота и задаём цвет
$('.bg-sector'+i+'').css({
"transform":"rotate("+(360*i/sector+90)+"deg)",
"border-color": ""+wheelOption[i][0]+" transparent"
});
//Отрисовка границ сектора
$('.line-sector'+i+'').css({
"width" : diameter/2+"px",
"transform" : "rotate("+((360*i/sector)+(180*(sector-1))/sector)+"deg)",
"height":"4px",
"top" : "calc(50% - 2px)",
"transform-origin" : diameter/2+"px 2px"
});
//Расставляем текст
$('.text-sector'+i+' div').html(wheelOption[i][1]);
// Формируем угол для текста
$('.text-sector'+i+'').css({"transform":"rotate("+(360*i/sector+90)+"deg)"});
};
//Форма сектора
$('.wheel_sector').css({
"border-width": (diameter/2)+"px "+sectorHalfWidth+"px 0",
"transform-origin": ""+sectorHalfWidth+"px "+(diameter/2)+"px",
"left":((diameter/2)-sectorHalfWidth)+"px"
});
//Форма текста
$('.wheel_textcont').css({
"width": (diameter/2)+"px",
"height": (diameter/2)+"px",
"transform-origin": ""+(diameter/4)+"px "+(diameter/2)+"px",
"left":((diameter/2)-(diameter/4))+"px",
});
}; creatingWheel();
//Вращение колеса
function spinWheel(deg){
$('.wheel_wrp').css({
"height": diameter+"px",
"transform" : "rotate("+deg+"deg)",
"transition": "transform "+spinTime+"s cubic-bezier(0, 0.76, 0.5, 1.01)"
});
};spinWheel(0);
//Случайный сектор
function getRandomInRange(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
let finalSector = -1;
//При нажатии на кнопку вращения
$('.spin_wheel .tn-atom').click(function(e) {
//Получаем финальный сектор
finalSector = getRandomInRange(0, sector-1);
//Поворачиваем колесо
spinWheel(maxRevolution*360 + (finalSector*360)/sector );
if (finalSector==0) finalSector=sector;
//Выводим текст и картинку
setTimeout(function(){
let prizTxt = wheelOption[sector-finalSector][1];
let prizeImg = wheelOption[sector-finalSector][2];
spinFinish = true;
finalStep('Ваш приз:<br>'+prizTxt, prizeImg);
//Сохраняем результат
let finalResult = {
text: prizTxt ,
img: prizeImg ,
sect:finalSector
};
localStorage.setItem('_code_w', JSON.stringify(finalResult));
}, spinTime*1000);
});
//Проверка прошлого вращения
let prevResult = localStorage.getItem('_code_w');let prevList;
let prevSend = localStorage['_wh_send'];
if (prevResult) {
prevList = JSON.parse(prevResult);
spinFinish = true;
$('.wheel_form button').attr('type','submit');
let preffTxt = '<u>Ваш прошлый приз</u><br>';
if(prevSend){
preffTxt = '<u>Заявка уже была отправлена</u><br>';
blockForm();
spinFinish = false;
};
finalStep(preffTxt+prevList.text, prevList.img);
spinWheel( (prevList.sect*360)/sector );
};
//Блокируем форму
function blockForm(){
if(!prevResult || prevSend ){
$('.wheel_form').addClass('form_noactive');
setTimeout(function(){$('.wheel_form button').attr('type','button')}, 3500);
};
};blockForm();
//Отправка формы
$('.wheel_form').delegate(".t-submit", "click", function(){
setTimeout(function(){
if ( $('.wheel_form .t-form').hasClass("js-send-form-success")){
localStorage['_wh_send'] = 'sf';closeWheel();blockForm();
};
}, 1000);
});
//Отрисовка финального шага
function finalStep(prizTxt, prizeImg){
//Удаляем кнопку
$('.spin_wheel').remove();
$('.present_text .tn-atom').html(prizTxt);
$('.present_img img').attr({
'data-original':prizeImg,
'src':prizeImg
});
//Открываем форму
if(spinFinish){
$('.wheel_form').removeClass('form_noactive');
$('.wheel_form button').attr('type','submit');
};
//Заполняем поле
setTimeout(function(){
resizeTxt = prizTxt.replace(/<\/?[^>]+>/g,' ');
$('input[name="sector_prize"]').val(resizeTxt);
}, 2500);
};
//Изменение размера окна
$( window ).resize(function() {
clearTimeout(window.resizedFinished);
window.resizedFinished = setTimeout(function(){
setTimeout(function(){
window.dispatchEvent(new Event('resize'));
}, 1000);
$('.wheel_wrp').empty();creatingWheel();
if(finalSector>=0) { spinWheel( (finalSector*360)/sector )
}else if (prevResult) {
spinWheel( (prevList.sect*360)/sector );
}else{spinWheel();};
setTimeout(function(){
if(!spinFinish){ $('.wheel_form button').attr('type','button');
}else{ $('input[name="sector_prize"]').val(resizeTxt) };
}, 3500);
}, 500);
});
//Показать блок
setTimeout(function(){
$('body').addClass('wheel-open-body');
wheelRec.addClass('wheel-time').removeClass('slide-wheel');
if(firstOpen && !prevResult ) {spinWheel(360); firstOpen = false};
setTimeout(function(){
$('.close-wheel').fadeIn(200);
}, 550);
}, 30000);
//Скрыть блок
function closeWheel(){ $('body').removeClass('wheel-open-body');$('.close-wheel').fadeOut(0); wheelRec.addClass('slide-wheel');};
$('.close-wheel').click(function(){closeWheel();});
$(document).keydown(function(eventObject){
if(eventObject.which == 27 && !wheelRec.hasClass('slide-wheel')){closeWheel()};
});
});
</script>