فرشید
6 سال پیش توسط فرشید مطرح شد
8 پاسخ

حرکت یک باکس در صفحه

سلام
چطوری میشه در جاوااسکریپت یه باکس رو که حرکت می دیم داخل صفحه وقتی مثلا به بالای صفحه رسید از پایین صفحه وارد بشه؟
ممنون


ثبت پرسش جدید
محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 6 سال پیش آپدیت شد
1

این تابع رو توی کدهات بنویس و توی تابع move هربار اجراش کن.

      function position_checker(){
        box1 = document.getElementById("box1");
        box_top = (box1.offsetTop+box1.clientHeight)-10;
        if (box_top<-10) {
          box1.style.top = (screen.height-box1.clientHeight)+'px';
        }
      }

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
1

نوع اِوِنت مناسب برای این کار رو مشخص کنید. فکر میکنم dragstart باشه اما خودتون هم در لینک زیر می‌تونید رویدادهای جاوااسکریپت رو بررسی کنید:
https://www.w3schools.com/jsref/dom_obj_event.asp

بعد با استفاده از متد offsetTop در جاوااسکریپت مشخص میکنید که فاصله باکس یه اِلِمان تا بالای صفحه چقدره:

var distanceToTop = document.getElementById("boxID").offsetTop;

اگر این مقدار + ارتفاع باکس کمتر از 0 بشه یعنی باکس باید از از بالا حذف بشه و از پایین صفحه نمایش داده بشه. بیشترش محاسباته.


فرشید
تخصص : Developer
@farshid 6 سال پیش مطرح شد
0

آقای بیات @ali.bayat
این طوری نوشتم و نشد باکس رو با کیبورد حرکت میدم

if(document.getElementById("box1").offsetTop < 0 +"px"){
                document.getElementById("box1").style.button = 0 + "px";

            }

محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 6 سال پیش مطرح شد
0

خب شما موقع حرکت دادن باکستون مقدار top اون رو چک کنید و اگر

box.top-box.height > screen.height

شد یعنی باکس شما از صفحه خارج شده و دوباره box.top رو برابر با 0 قرار بدید.


فرشید
تخصص : Developer
@farshid 6 سال پیش مطرح شد
0

آقا من دیگه مخم نمی کشه
:))
مشکل این کد چیه که اجرا نمیشه
@dr-code.ir
@ali.bayat

if(document.getElementById("box1").style.top == screen.height + "px"){
                alert("hello")

محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 6 سال پیش مطرح شد
1

برای اینکه بهتر بشه کمک کرد کدهاتون رو روی سایتی مثل https://playcode.io اجرا کن و ذخیره کن و لینکش رو بزاری بهتر میشه مشکلش رو حل کرد.


فرشید
تخصص : Developer
@farshid 6 سال پیش مطرح شد
0

دوستان این لینکشه اگه میشه کمک کنید
می خوام وقتی به آخر صفحه می رسه از اون طرف بیاد بیرون
http://playcode.io/ppp


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
0

@farshid
برای گرفتن فاصله از div تا بالای صفحه:

document.getElementById("box").offsetTop

و برای گرفتن ارتفاع div از:

document.getElementById("box").offsetHeight

محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 6 سال پیش آپدیت شد
1

این تابع رو توی کدهات بنویس و توی تابع move هربار اجراش کن.

      function position_checker(){
        box1 = document.getElementById("box1");
        box_top = (box1.offsetTop+box1.clientHeight)-10;
        if (box_top<-10) {
          box1.style.top = (screen.height-box1.clientHeight)+'px';
        }
      }

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


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

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