PDA

View Full Version : از چه کدی برای رفتن به بالای صفحه در "وب ویو در اندروید" استفاده کنم؟



sco1385
جمعه 02 خرداد 1393, 10:25 صبح
سلام دوستان.

من می‌خواهم با کلیک کردن روی یک تصویرِ فلش رو به بالا، به ابتدای یک صفحه html بروم. البته به این نکته توجه فرمائید که فایل html من در "وب ویو اندروید" قرار دارد.

در انجمن اندروید سوال کردم، پاسخی داده نشد، گفتند باید در انجمن html سوال کنی.

از دستور زیر استفاده کردم، جواب نمیده.



<div id="link_payrovan"><a href="#top">بالای صفحه</a></div>



خواهشمندم راهنمایی فرمائید.

TeacherMath
جمعه 02 خرداد 1393, 18:59 عصر
خوب باید یک عصر در بالای صفحه داشتی باشی که id آن top باشد

vimax23
جمعه 02 خرداد 1393, 21:07 عصر
سلام دوستان.

من می‌خواهم با کلیک کردن روی یک تصویرِ فلش رو به بالا، به ابتدای یک صفحه html بروم. البته به این نکته توجه فرمائید که فایل html من در "وب ویو اندروید" قرار دارد.

در انجمن اندروید سوال کردم، پاسخی داده نشد، گفتند باید در انجمن html سوال کنی.

از دستور زیر استفاده کردم، جواب نمیده.



<div id="link_payrovan"><a href="#top">بالای صفحه</a></div>



خواهشمندم راهنمایی فرمائید.




اگر میخوایی مخفی و نمایش داده بشه بعد از چند پیکسل با جی کوئری میشه
<script type="text/javascript">
$(document).ready(function(){

$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
$('.scrollup').fadeIn();
} else {
$('.scrollup').fadeOut();
}
});

$('.scrollup').click(function(){
$("html, body").animate({ scrollTop: 0 }, 600);
return false;
});

});
</script>


لینک با آیدی اسکرولتاپ رو هم تعریف میکنی


<a href="#" class="scrollup">Scroll</a>


برای اسکرولتاپی که ساختی یه سی اس اس هم تعریف میکنی اینطوری


.scrollup {
background: url("icon_top.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
bottom: 50px;
display: none;
height: 40px;
opacity: 0.3;
position: fixed;
right: 100px;
text-indent: -9999px;
width: 40px;
}

به جای عکس icon_top.png میتونی از فونت های آیکنی هم استفاده کنی

همین

sco1385
شنبه 03 خرداد 1393, 15:36 عصر
با تشکر از شما.

اسکریپت رو دقیقا در کجا قرار بدم.

داخل هدر فایل، یا داخل بادی؟

در ضمن : آیا جی کوئری در وب‌ویو کار میکنه؟

البته جاوا اسکریپت را در وب ویو فعال کردم.

ممنون

sco1385
شنبه 03 خرداد 1393, 16:22 عصر
وای مکس گرامی

وقتی این لینک رو که شما دادی در بادی قرار می دهم، اصلاً نه نوشته و نه تصویر، هیچکدام نشون داده نمیشه!!



<a href="#" class="scrollup">Scroll to top</a>


ممنون

vimax23
یک شنبه 04 خرداد 1393, 21:50 عصر
وای مکس گرامی

وقتی این لینک رو که شما دادی در بادی قرار می دهم، اصلاً نه نوشته و نه تصویر، هیچکدام نشون داده نمیشه!!



<a href="#" class="scrollup">Scroll to top</a>


ممنون

بیا اقا (http://jsfiddle.net/Tm8Zr/)
:متفکر:

sco1385
یک شنبه 04 خرداد 1393, 22:08 عصر
اسکریپت رو دقیقا در کجا قرار بدم.

داخل هدر فایل، یا داخل بادی؟

Mori Bone
یک شنبه 04 خرداد 1393, 22:23 عصر
http://jsfiddle.net/Tm8Zr/
اگه منظورتون اسکریپت ها و کد های لینک بالا هست باید بگم که:
کد های html که معلومه داخله body
کدهای java scropt داخل header، بین <script></script>
کدهای css هم بین <style></style> داخل header

sco1385
یک شنبه 04 خرداد 1393, 22:51 عصر
ممنون از پاسخ

اتفاق عجیب باز هم تکرار شده.

یعنی وقتی من این کدها را در فایل اچ تی ام ال می نویسم، اصلاً در فایل نهایی وقتی اجرا میشه در وب ویو دیده نمیشه.

من یک خط و یک نوشته به نام تست را بعد از این دو خط قرار دادم.

جالب این که، اون خط و کلمه تست در صفحه ظاهر می شود، ولی اون خط کد که لینک در آن قرار دارد اصلا در صفحه دیده نمی شود!!!

در دو پست قبلی هم گفتم، که این اتفاق عجیب می‌افتد.



<a href="#" class="scrollup"><div><img alt="image" title="top_image" />Scroll to top</div></a>


<!-- --------------------------------------------------------------------- -->
<div><a href="#" class="scrollup">Scroll</a></div>
---------------------
test




اصلا لینک‌ها در صفحه ظاهر نمی‌شوند تا تست کنم!!

شرمنده از مزاحمت

sco1385
یک شنبه 04 خرداد 1393, 23:01 عصر
این صفحه html :



<!DOCTYPE html>
<html>


<head>
<meta http-equiv="Content-Language" content="fa" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link type="text/css" rel="stylesheet" href="jomalat.css" />
<script type="text/javascript">
$(document).ready(function(){

$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
$('.scrollup').fadeIn();
} else {
$('.scrollup').fadeOut();
}
});

$('.scrollup').click(function(){
$("html, body").animate({ scrollTop: 0 }, 600);
return false;
});

});
</script>


</head>


<!-- --------------------------------------------------------------------- -->
<body>
<!-- --------------------------------------------------------------------- -->


<div id="titr">شریعتی</div>
<div id="pen_image"><img alt="image" title="pen_Image" /></div>


<div id="clip_image"><img alt="image" title="clip_image" /></div>
<div id="link_talar"><a href="http://talar.shandel.info">تالار گفتمان شریعتی</a></div>
<div id="link_payrovan"><a href="http://talar.shandel.info">سایت پیروان آرمان شریعتی</a></div>




<a href="#" class="scrollup"><div><img alt="image" title="top_image" />Scroll to top</div></a>


<!-- --------------------------------------------------------------------- -->
<div><a href="#" class="scrollup">Scroll</a></div>


---------
test
</body>
</html>




الان دو خط 49 و 53 اصلاً در صفحه دیده نمی‌شود!!

vimax23
دوشنبه 05 خرداد 1393, 14:53 عصر
این صفحه html :



<!DOCTYPE html>
<html>


<head>
<meta http-equiv="Content-Language" content="fa" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link type="text/css" rel="stylesheet" href="jomalat.css" />
<script type="text/javascript">
$(document).ready(function(){

$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
$('.scrollup').fadeIn();
} else {
$('.scrollup').fadeOut();
}
});

$('.scrollup').click(function(){
$("html, body").animate({ scrollTop: 0 }, 600);
return false;
});

});
</script>


</head>


<!-- --------------------------------------------------------------------- -->
<body>
<!-- --------------------------------------------------------------------- -->


<div id="titr">شریعتی</div>
<div id="pen_image"><img alt="image" title="pen_Image" /></div>


<div id="clip_image"><img alt="image" title="clip_image" /></div>
<div id="link_talar"><a href="http://talar.shandel.info">تالار گفتمان شریعتی</a></div>
<div id="link_payrovan"><a href="http://talar.shandel.info">سایت پیروان آرمان شریعتی</a></div>




<a href="#" class="scrollup"><div><img alt="image" title="top_image" />Scroll to top</div></a>


<!-- --------------------------------------------------------------------- -->
<div><a href="#" class="scrollup">Scroll</a></div>


---------
test
</body>
</html>




الان دو خط 49 و 53 اصلاً در صفحه دیده نمی‌شود!!
تو سورس اثری از کتابخانه جی کوئری نیست! یعنی باید این تو هدر شما باشه
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js" ></script>
اگر اسکریپتی که استفاده میکنین این کتابخونه رو داشته باشه نیاز به لودش نیست اگر نداره باید باشه
اثری هم از استایل مربوط به کلاس scrollup نیست!
فایل استایل اصلی رو باز کنین توش اینو بنویسین
.scrollup {
width: 40px;
height: 40px;
position: fixed;
bottom: 50px;
right: 100px;
display: none;
text-indent: -9999px;
background: url('icon_top.png') no-repeat;
background-color: #000;
}
اگر واسه تست هست صرفا میتونین با تگ <style> و </style> بزارین و نگاه کنین خروجی رو ، من بک گراند رو سیاه گذاشتم چون نمیدونم چی قراره باشه میتونین کلش رو icon_top.png بزارین باشه
همچنین شما باید اسکرول بتو صفحه داشته باشین که بیاد فانکشن رو بخونین ، من واسه همین بی آر انداختم توش ، معمولا این کد رو قبل از بسته شدن body یعنی آخرین کد میزارن البته من نمیدونم دیزاین شما چی هست ممکنه نیاز بشه بیاد بالای دیوی که توش اطلاعات فوتر هست یا همسان با دیو فوتر باشه
بعد از body چند بار تگ <br /> بدین ، البته تو سایت معمولا اسکرول میخوره وقتی محتوا میخوره تو صفحه واسه همین برای تست <br /> بزارین چند تا که صفحه اسکرول بخوره

این میاد سمت راست اگر میخوایین سمت چپ بیاد تو کلاس .scrollup مقدار right: 100px; رو به left: 100px; تغییر بدین

سروس واضح هست و ساده

sco1385
دوشنبه 05 خرداد 1393, 17:13 عصر
با تشکر از پاسخ شما

من نمی‌دانستم باید کتابخانه جی کوئری را بگذارم. الان گذاشتم.

استایل اسکرول را در فایل سی اس اس گذاشته بودم و ضرورتی ندیدم اینجا کدش را بگذارم. شما در آموزش‌تان در لینکی که گذاشته بودید، به خوبی مشخص کرده بودید.

متن زیادی در صفحه گذاشته بودم و صفحه اسکرول می‌شد. واز این بابت مشکلی نبود.

الان یک فایل درست می‌کنم و همه را یک جا می‌گذارم و بعد در انجمن قرار می‌دهم تا ببینید.

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

سعی می‌کنم کد را در همان سایت خوبی که لینک داده بودید بگذارم.

اما مشکل من این است که این دو خط 49 و 53 اصلاً در صفحه دیده نمی‌شود!!

تا من روی آن کلیک کنم و ببینم عمل می‌کند یا نه؟!!!

بگذارید من فایل را کامل کنم و امشب در سایت قرار بدم، تا معلوم شود اشکال کجاست.

بسیار سپاسگذارم از پاسخ روشن و طولانی شما. زنده باشید

sco1385
دوشنبه 05 خرداد 1393, 17:31 عصر
با این لینک نگاه کنید.

کد شما درست عمل می‌کند.

اسکرول هم می‌کند.

مشکل در کار من یا وب ویو است.

الان کار دارم.

امشب بررسی می‌کنم.

لینک برای دیدن کد و دمو (http://jsfiddle.net/sco1385/C2MLM/)

sco1385
دوشنبه 05 خرداد 1393, 18:55 عصر
علت ناپدید شدن دو خط 49 و 53، قرار دادن نام کلاس scrollup در داخل کد است!

الان من عبارت class="scrollup" را از کد هر خط که حذف می‌کنم، آن خط در نمایش نهایی دیده می‌شود.

کاملاً مشخص است که جی کوئری باعث حذف آن خط می‌شود.

مطلبی در این باره به فکرتان نمی‌رسد؟

sco1385
دوشنبه 05 خرداد 1393, 18:59 عصر
البته من به رفتن آنی به بالای صفحه هم قانع هستم.

اگر نرم هم اسکرول نشد مهم نیست.

فقط کافی است یک تصویر در پائین صفحه باشد و با کلیک تصویر به بالای صفحه برویم.

همین کافی است.

vimax23
دوشنبه 05 خرداد 1393, 23:17 عصر
من که متوجه منظور شما نشدم آخر! عرض کردم صفحه شما باید چند پیکسل پائین باشه اسکرول بخوره که نمایش بده
ساده ترین کد هم استفاده از رویداد onclick و document.location.hash هست که به یه المان اشاره کنین تو یه لینک هم میتونین بزارین

sco1385
سه شنبه 06 خرداد 1393, 00:33 صبح
شرمنده اگر بد توضیح دادم

من لینک را برای شما قرار دادم.

http://jsfiddle.net/sco1385/C2MLM/

و گفتم که کار شما درست است.

و کدها کار می‌کند.

صفحه من هم دارای مطلب زیادتر از ارتفاع موبایل است.

بنابراین راهنمایی شما کامل بود. و سپاسگزارم.

اما مشکلی وجود دارد که اشاره کردم.

و در پست بعدی دوباره توضیح می دهم.

sco1385
سه شنبه 06 خرداد 1393, 00:42 صبح
الان همین کدهای اچ تی ام ال را وقتی در وب ویو قرار می‌دهم.

اولا : وقتی برنامه را ران می‌کنم، اصلاً خطوط 49 و 53 در صفحه دیده نمی‌شوند. و گویا اصلا چنین کدی در صفحه نبوده است.

طبیعتا بخاطر وجود متن Scroll to top در کد خط 49، ما باید این نوشته را در وب ویو ببینیم.

و همچنین چون در خط 53 عبارت Scroll وجود دارد، این متن باید در صفحه موبایل دیده شود.

اما اصلا نه مربع سیاه ظاهر می‌شود.

و نه این دو نوشته. تا من بتوانم روی این سه تا کلیک کنم، تا ببینم اصلاً به بالای صفحه می‌شود رفت یا نه.

با وای فای هم وصل هستم و باید جی کوئری هم دریافت شود.


به طور عجیبی این اتفاق افتاده.

جالب آنکه همان محتوایی که در این لینکی که دادم گذاشتم، در فایل مورد استفاده در وب ویو قرار دارد.

فایل را بعدا آپلود می‌کنم تا ببینید.

امشب بررسی کنم. فردا آپلود می‌کنم.

ممنون

sco1385
چهارشنبه 14 خرداد 1393, 18:36 عصر
استادان گرامی

با خواندن این مقاله در سایت "استک‌اورفلو" فهمیدم که اگر وب‌ویو در داخل یک وجت "اسکرول‌ویو" قرار داشته باشه، انکر (anchor) در داخل فایل html عمل نمی‌کند!

مطالعه مقاله استک‌اورفلو (http://stackoverflow.com/questions/3039555/android-webview-anchor-link-jump-link-not-working/8317764#8317764)

پس از خواندن مقاله، من اسکرول ویو را حذف کردم، و دیدم که کدهای انکر به خوبی عمل می‌کند.

اما متوجه شدم که، از دو روش موجود، تنها این روش عمل می‌کند:




<a name="raptors"></a>

<a href="#raptors">go to top</a>


اما روش زیر، یعنی استفاده از آی‌دی کار نمی‌کند:


<a id="tips">go to top</a>


هر چند که فایل html خودش اسکرول می‌شود، و احتیاج به استفاده از اسکرول‌ویو نیست، اما متاسفانه، در برنامه من، به خاطر وجود یک عکس در بالای وجت وب‌ویو، قرار دادن اسکرول‌ویو بسیار ضروری است، چرا که اگر از اسکرول‌ویو استفاده نکنم، عکس به بالا اسکرول نمی‌شود، و همیشه بخشی از فضای صفحه را اشغال می‌کند.

چکار کنم که، بدون قرار دادن وب ویو، که در زیر عکس بزرگ در بالای صفحه قرار دارد، در داخل اسکرول‌ویو، عکس بالای صفحه هم اسکرول شود؟

آیا راهی هست؟