راکت
حل شده

کد شمارش معکوس و فعال شدن ارسال مجدد

21 پاسخ

با سلام خدمت اساتید ...
در سایتهایی که ورود از طریق شماره همراه و وارد کردن کد تایید انجام میشه بخشی وجود داره که وقتی کاربر دکمه درخواست کد رو کلیک کرد 2 دقیقه به صورت معکوس شمارش رو انجام میده و اگر کد به هر دلیلی وارد نشد دکمه ارسال مجدد دوباره فعال میکنه
دوستان کسی کد اماده این بخش رو داره :
دو دقیقه به صورت معکوس شمارش انجام بشه و بعد از اتمام این زمان دکمه ارسال مجدد فعال بشه ؟

ثبت پرسش جدید

پاسخ‌ها

21
حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

بهترین پاسخ

بفرما اینو تستش کن ببین همون هست که میخوای؟؟

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Timer</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style type="text/css">
        body{
            text-align: right;
            direction: rtl;
        }
      .btn-start-timer{
        text-align: center;
        margin-top: 300px;
      }
      .otp-timer{
        margin-top: 30px;
        font-family: tahoma;
        background-color: #eee;
        padding: 10px;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      .otp-timer span{
        margin-left: 5px;
      }
      #minutes, #seconds{
        padding: 6px;
        max-width: 30px;
        border-radius: 3px;
        background-color: green;
        color:white;
      }
      button{
        background: #e80dbc;
        color: #040b04;
        padding: 10px;
        border: none;
        border-radius: 10px;
        cursor: pointer;
      }
      button:hover{
        background-color: green;
        color: white;
      }
  </style>

</head>
<body>
    <div class="btn-start-timer">
        <button onclick="startTimer()" >شروع</button>
    </div>

    <div class="otp-timer">
        <span class="text"> زمان باقیمانده :</span>
        <span id="seconds">00</span>
        <span class="dot">:</span>
        <span id="minutes">0</span>
    </div>
</body>
</html>
<script>
    var minutes;
    var seconds;
    var set_inteval;
    function otp_timer() {
        seconds -= 1;
        document.getElementById('seconds').innerHTML = seconds;
        document.getElementById('minutes').innerHTML = minutes;
        if (seconds == 0) {
            if (minutes > 0) {
                seconds = 60;
                minutes -= 1;
            } else {
                minutes = 0;
                document.getElementById('minutes').innerHTML = minutes;
                clearInterval(set_inteval);
                minutes = 0;
                seconds = 0;
                document.getElementById('seconds').innerHTML = '00';
                document.getElementById('minutes').innerHTML = '0';
            }
        }
    }
    function startTimer() {
        minutes = 3;
        seconds = 60;
        document.getElementById('seconds').innerHTML = seconds;
        document.getElementById('minutes').innerHTML = minutes; 
        set_inteval = setInterval( 'otp_timer()', 1000 );
    }
</script>

البته استایل های css هیچ تاثیری در کار این شمارنده نداره و میتونی همشونو کالا پاک کنی.
این شمارنده روی 4 دقیقه گذاشته شده برای شمارش دلخوا کافیه عدد دقیقه رو به متغییر minutes بدین.

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

سلام و درود این کدو با جاوااسکریپت خودت هم میتونی بنویسی بنده این کارو قبال انجام دادم و فعلا از حوصله من خارجه و دسترسی هم به اون کد قبلیم ندارم . با جاواسکریپت میتونی این کارو انجام بدی.

grandfather
grandfather
@hossein0065

تخصص: پدربزرگ ...

@hosseinshirinegad98 بله میدونم که با جاوا میشه
اما چجوریشو نمیدونم :)

شاید پاسخ شما همین‌جا باشد

aliiiabniki
aliiiabniki
@aliiiabniki

تخصص: full stack developer

سلام
میتونید از تابع setInterval در جاوااسکریپت استفاده کنید
سرچ کنید و نمونه های مخلفشو تو نت ببینید
متوجه ساختار و نوع استفادش میشید
موفق باشید

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

var minutes;
var seconds;
var set_inteval;
function otp_timer() {
    seconds -= 1;
    document.getElementById('seconds').innerHTML = seconds;
    document.getElementById('minutes').innerHTML = minutes;
    if (seconds == 0) {
        if (minutes > 0) {
            seconds = 60;
            minutes -= 1;
        } else {
            minutes = 0;
            document.getElementById('minutes').innerHTML = minutes;
            clearInterval(set_inteval);
            minutes = 0;
            seconds = 0;
            document.getElementById('seconds').innerHTML = '00';
            document.getElementById('minutes').innerHTML = '0';
        }
    }
}
<div class="otp-timer">
    <span class="text"> زمان باقیمانده :</span>
    <span id="seconds">60</span>
    <span class="dot">:</span>
    <span id="minutes">4</span>
</div>

اینطوری بکارش بنداز

minutes = 4;
seconds = 60; 
set_inteval = setInterval( 'otp_timer()', 1000 );

اینطوری هم متوفقش کن.

        clearInterval(set_inteval);
        document.getElementById('seconds').innerHTML = '00';
        document.getElementById('minutes').innerHTML = '0';
حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

آقای دانشمند ببخشید مشکلتون با کد حل شد.

آقای هگز
آقای هگز
@mrhex

تخصص: برنامه نویس وب

@hosseinshirinegad98
شما کسی چاقو زیر گلوتون نزاشته که حتما جواب بدید که :)
اگه حوصله جواب دادن ندارید خب توی این سکشن سایت نیاید چرا توهین میکنید به کسی که سوال پرسیده؟؟؟؟؟؟
@hesammousavi این مدل جدیده دیگه؟

grandfather
grandfather
@hossein0065

تخصص: پدربزرگ ...

@hosseinshirinegad98 مهندس جان ممنون بابت وقتی که گزاشتی چیزی که مد نظر ما هست به این صورته که کاربر با کلیک کردن روی یک دکمه این شمارش معکوس اغاز بشه
چیزی تو این مایه ها :

<html>
<body>
<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
  setTimeout(function(){ alert("Hello"); }, 3000);
}
</script>
</body>
</html>

مشکل این کد اینه که شمارش معکوس رو به کاربر نمایش نمیده و کدهای شما هم با رفرش صفحه اغاز به شمارش میکنه
حالا ان دوتا رو چجوری باید با هم ادغام کرد جای سواله ؟

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

@hosseinshirinegad98
اگر حوصله پاسخگوویی ندارید پس فعالیت نکنید :)
کسی مجبور به اینکار نکرده شما رو
پس به شعور بقیه احترام بزارید 😑😑
این همه سوالی که شما پرسیدید و بقیه جواب دادن اگر بقیه دوستان با این ادبیات بهتون جواب میدادن خودتون چی بهشون میگفتید !!!!

grandfather
grandfather
@hossein0065

تخصص: پدربزرگ ...

@hesammousavi جناب موسوی سوال رو من مطرح کردم بعد حوصله پاسخ به چیو ندارم
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
کدوم ادبیات !!!!😐😐😐😐😐

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

سلام دارم روش کار میکنم بهتون کدشومیدم. اینکه با رفرش صفحه شمارش از نو شروع میشه مقداری دانش بیشتر در زمینه js میخواد. میشه مقدارشو در یه جا مثل localStorag ذخیره کرد و دوباره هنگام refresh خوندش و ادامه شمارشو انجام داد. این مسئله زیاد مهم نیست شاید البته برای کار شما لازم باشه. تواین موقعیت اکثرا کسی صفحه رو refresh نمیکنه.
ضمن اینکه در باره پیام آقای موسوی بگم ایشون به اشتباه بجای اینکه پیامو به من بدن به شما دادن .

grandfather
grandfather
@hossein0065

تخصص: پدربزرگ ...

@hosseinshirinegad98 من فکر کنم سوالم رو درست مطرح نکردم
کدهایی که شما فرمودید اوکی هست
فقط اگه بشه با کلیک روی یک گزینه (برای مثال دکمه درخواست کد) این تایمر شروع به شمارش بکنه کار اوکی میشه

grandfather
grandfather
@hossein0065

تخصص: پدربزرگ ...

@hosseinshirinegad98 ممنونم از وقتی که گذاشتید ...عااااالی

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

خواهش میکنم

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

@hossein0065 اشتباه تگ کردم منظورم جناب @hosseinshirinegad98 بود !!!

negar
negar
@negar

تخصص: اول راه

FOENIX
FOENIX
@billchmin

تخصص: کار آموز

با سلام خدمت شما
گاهی وقتا ما منظورمونو با محبت میگیم اما چون حالت چهره و گویشمون معلوم نیست شبیه به توهین میشه @hesammousavi

FOENIX
FOENIX
@billchmin

تخصص: کار آموز

ببخشید جناب من از کد شما استفاده کردم و شخصی سازیش کردم ولی نمی تونم بخش مربوط به رنگ دکمه شروع رو پیدا کنم ممنون میشم یکی راهنمایی کنه@hosseinshirinegad98

فرزین صالحی
فرزین صالحی
@salehifarzin

تخصص: وردپرس

 تصویر

تیکه کد این رو دارید بی زحمت برام ارسال کنید ؟ میخوام بطور خودکار مثلا از یک سال ی دفعه بیاد 0 و یک سال طول بکشه این که بیاد روی 0

@hosseinshirinegad98

شهاب
شهاب
@shahabantic

سلام
@hosseinshirinegad98 امکانش هست این کد رو یه تغییراتی بدید که بعد اتمام زمان سنج بنویسه زمان شما به پایان رسید خیلی ممنون

محمد حسین
محمد حسین
@saghari

تخصص: mevn stack

@shahabantic
یه div اضافه کن با آیدی مثلا success بعد از خط 82 اینو اضافه کن

document.querySelector('#success').innerHTML = 'زمان به پایان رسید'

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام