এইচটিএমএল পৃষ্ঠায় রিফ্রেশ পৃষ্ঠার শীর্ষে পৃষ্ঠায় স্ক্রোল অবস্থান


129

আমি একটি ওয়েবসাইট তৈরি করছি যা দিয়ে প্রকাশ করছি div এস । আমি যখন পৃষ্ঠাটি এক্স পজিশনে স্ক্রোল করার পরে পৃষ্ঠাটি রিফ্রেশ করব, তখন পৃষ্ঠাটি এক্স হিসাবে স্ক্রোল অবস্থানের সাথে লোড হবে

আমি কীভাবে পৃষ্ঠাকে রিফ্রেশের শীর্ষে পৃষ্ঠায় স্ক্রোল করতে বাধ্য করতে পারি?

  • আমি যা ভাবতে পারি তা হ'ল কিছু জেএস বা jQuery রান onLoad()পৃষ্ঠাতে ফাংশন হিসাবে চালিত হয় Tপৃষ্ঠাগুলি উপরে স্ক্রোলটি করতে পৃষ্ঠার । আমি জানি না যে আমি কীভাবে এটি করতে পারি।

  • এর চেয়ে ভাল বিকল্প হ'ল যদি পৃষ্ঠাতে তার স্ক্রোলের অবস্থানটি ডিফল্ট হিসাবে (যেমন শীর্ষে) লোড করা যায় এমন কিছু সম্পত্তি বা কিছু থাকে যা পৃষ্ঠা রিফ্রেশের পরিবর্তে পৃষ্ঠা ধরণের লাইক হবে ।


আশ্চর্যের বিষয়, এগুলির কোনও সমাধানই আমার পক্ষে কাজ করেনি, তবে এটি একটিটি
রায়ান

উত্তর:



165

সাধারণ সরল জাভাস্ক্রিপ্ট প্রয়োগের জন্য:

window.onbeforeunload = function () {
  window.scrollTo(0, 0);
}


1
এটা সঠিক উত্তর. JQuery সমাধান সমস্ত ক্ষেত্রে কার্যকর হয় না।
হ্যারি স্টিভেনস

@ পল 12_ - আমি কেবল এটি পরীক্ষা করেছিলাম Safari 11.0.3এবং আমার পক্ষে ঠিক কাজ করি, আপনি কোনটি ব্যবহার করছেন?
অধ্যাপক নান্দা

এটি আমার পক্ষে কার্যকর হয়নি। এটিকে কাজ করার জন্য আমাকে অনবরে লোড ফাংশন থেকে ফিরে আসতে হয়েছিল।
ইকবাল

@ ইকবাল - আপনি কি করলেন return?
অধ্যাপক নন্দা

1
যোগ document.querySelector('html').style.scrollBehavior = '';করা খুব প্রয়োজন হতে পারে। যদি এটি সেট করা থাকে smooth, পৃষ্ঠা পুনরায় লোড হওয়ার আগে এটি শীর্ষে নাও যেতে পারে।
কেভনক

35

এখানে উত্তরটি সাফারি, ডকুমেন্টের জন্য কাজ করে না ready প্রস্তুতি প্রায়শই খুব তাড়াতাড়ি বরখাস্ত করা হয়।

beforeunloadআপনাকে কিছু করতে বাধা দেয় এমন ইভেন্টটি ব্যবহার করা উচিতsetTimeout

$(window).on('beforeunload', function(){
  $(window).scrollTop(0);
});

1
স্ক্রোল ফাংশন পরে যুক্ত করুন: $ ('এইচটিএমএল')। পাঠ্য (''); , সুতরাং stroller পুনরায় সেট করা হবে
ব্যবহারকারীর 656584

1
@ ব্যবহারকারী পাসওয়ার্ড আপনি কি ভাবেন না $ ("এইচটিএমএল")। অপসারণ () ভাল কি?
বেন

18

আবার, সর্বোত্তম উত্তরটি হ'ল:

window.onbeforeunload = function () {
    window.scrollTo(0,0);
};

(নন-জিক্যুয়রির জন্য ধন্যবাদ, আপনি জিকিউ পদ্ধতিটি অনুসন্ধান করছেন কিনা তা সন্ধান করুন)

সম্পাদনা করুন: এটির একটি "ভুল ভুল" :) ক্রোম এবং অন্যান্য ব্রাউজারগুলি আনলোড করার জন্য শেষ স্ক্রোল অবস্থানটি "মনে রাখবেন", তাই আপনি যদি আপনার পৃষ্ঠাটি আনলোডের ঠিক আগে 0,0 এ মান সেট করেন তবে তারা 0,0 মনে রাখবে এবং জিতবে স্ক্রোলবারটি যেখানে ছিল সেখানে ফিরে স্ক্রোল করব না :)


@ পল 12_ সাফারি document.documentElement.scrollTopকাজ করা প্রয়োজন । আমি সাধারণত উভয় ব্যবহার।
গ্রাহাম ও'মাহনি


9

আপনি চেষ্টা করতে পারেন

$(document).ready(function(){
    $(window).scrollTop(0);
});

আপনি যদি এক্স পজিশনে স্ক্রোল করতে চান তবে আপনি 0 এর মান পরিবর্তন করতে পারেন।


7

পরিবর্তে location.reload(), সহজভাবে ব্যবহার করুনlocation.href = location.href । এটি আগের অবস্থানে স্ক্রোল করবে না location.reload()

দ্রষ্টব্য: URL টিতে # টি থাকলে এটি পুনরায় লোড হবে না


4
<script> location.hash = (location.hash) ? location.hash : " "; </script>

উপরের স্ক্রিপ্টটি <head>আপনার এইচটিএমএল ট্যাগ করুন। একক পৃষ্ঠার অ্যাপ্লিকেশনগুলি কীভাবে আচরণ করে তা নিশ্চিত নয়! তবে নিশ্চিতভাবে নিয়মিত পৃষ্ঠাগুলিতে কবজির মতো কাজ করে।


4

উত্তর এখানে (স্ক্রোলিং মধ্যে $(document).readyপৃষ্ঠাটিতে কোনও ভিডিও থাকলে ) কাজ করে না। সেক্ষেত্রে এই পৃষ্ঠাটি সরিয়ে দেওয়ার পরে পৃষ্ঠাটি স্ক্রোল করা হবে, আমাদের কাজকে ওভাররাইড করে।

সেরা উত্তরটি হওয়া উচিত:

$(window).on('beforeunload', function(){
    $(window).scrollTop(0);
});

3
$(document).ready(function(){
    $(window).scrollTop(0);
});

গুগল ক্রোম পৃষ্ঠা লোডিং শেষ হওয়ার পরে কেবল ফিরে স্ক্রোল করে দেবে বলে আমার পক্ষে কাজ করে নি। যা আমি ব্যবহার করেছি তা ছিল

$(document).ready(function() {
    var url = window.location.href;
    console.log(url);
    if( url.indexOf('#') < 0 ) {
        window.location.replace(url + "#");
    } else {
        window.location.replace(url);
    }
});

// এটি পৃষ্ঠার শেষে একটি # দিয়ে লোড করে। সুতরাং এটি সর্বদা শীর্ষে লোড হবে।


3

উইন্ডো স্ক্রোলটি শীর্ষে ফিরে যেতে, $(window).scrollTop(0)পূর্বেই লোড ইভেন্টে কৌশলগুলি করে তবে, আমি Chrome 80 এ পরীক্ষা করেছিলাম এটি পুনরায় লোডের পরে পুরানো জায়গায় ফিরে যাবে।

যে প্রতিরোধ করার জন্য, সেট history.scrollRestorationকরতে "manual"

//Reset scroll top

history.scrollRestoration = "manual";

$(window).on('beforeunload', function(){
      $(window).scrollTop(0);
});

এটি আমার পক্ষে সেরা প্রতিক্রিয়া, ক্রোম / লিনাক্সে কাজ করে
এসএনএস - ওয়েব এট ইনফরমেশনিক

0

সুপার ক্যালিফ্রেগ্রিলিস্টিস এক্সপায়ালিডোসিয়াস উত্তরটি হ'ল:

আপনার js ফাইল বা স্ক্রিপ্ট ট্যাগের শীর্ষে এটি যুক্ত করুন

document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera

document.body.scrollTop = 0; // For Safari
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.