কোনও পৃষ্ঠা লোড করার সময় অ্যাঙ্কর "জাম্প" অক্ষম করবেন কীভাবে?


110

আমি মনে করি এটি সম্ভব নাও হতে পারে, চেষ্টা করুন এবং যথাসম্ভব যথাসম্ভব ব্যাখ্যা করব। আমার কাছে এমন একটি পৃষ্ঠা রয়েছে যাতে ট্যাবগুলি রয়েছে (জ্যাকুারি চালিত), নিম্নলিখিতটি দ্বারা নিয়ন্ত্রিত:

আমি এই কোডটি ব্যবহার করছি, পূর্ববর্তী প্রশ্ন থেকে অন্য ব্যবহারকারীর দ্বারা সরবরাহ করা।

<script type="text/javascript">
    $(function() {

     $('html, body').animate({scrollTop:0}); // this is my "fix"

        var tabContent = $(".tab_content");
        var tabs = $("#menu li");
        var hash = window.location.hash;
     tabContent.not(hash).hide();
        if(hash=="") {
      $('#tab1').fadeIn();
     }
        tabs.find('[href=' + hash + ']').parent().addClass('active');

        tabs.click(function() {
            $(this).addClass('active').siblings().removeClass('active');
            tabContent.hide();
            var activeTab = $(this).find("a").attr("href");

            $(activeTab).fadeIn();
           return false;
        });

    });
</script>

এই কোডটি দুর্দান্ত কাজ করে যখন আমি সরাসরি "ট্যাবগুলি" পৃষ্ঠাতে যান।

তবে, আমাকে অন্যান্য পৃষ্ঠাগুলির থেকে ইনভিডুয়াল ট্যাবগুলিতে লিঙ্ক করতে হবে - এটি করার জন্য কোডটি তত্ক্ষণাত অ্যাপ্রোপিয়েট window.location.hashট্যাবটি দেখায়।

"মিথ্যা প্রত্যাবর্তন" এর কারণে পৃষ্ঠাটি অ্যাঙ্কারে "জাম্প" দেয় না।

তবে এই ইভেন্টটি কেবল একটি ক্লিক ইভেন্টে ট্রিগার করা হয়েছে। অতএব, যদি আমি অন্য কোনও পৃষ্ঠা থেকে আমার "ট্যাবগুলি" দেখতে যাই, তবে "জাম্প" প্রভাবটি ট্রিগার হয়। এটিকে মোকাবেলায় আমি স্বয়ংক্রিয়ভাবে পৃষ্ঠার শীর্ষে স্ক্রোল করেছি, তবে আমি বরং এটি ঘটতে চাই would

অ্যাঙ্করটিকে "লাফিয়ে" পড়া থেকে বিরত রেখে পৃষ্ঠাটি লোড হয়ে গেলে "মিথ্যা ফেরত" অনুকরণ করার কোনও উপায় আছে কি?

আশা করি এটি যথেষ্ট পরিষ্কার।

ধন্যবাদ

উত্তর:


143

আপনার ফিক্স কাজ করে না? আমি প্রশ্নটি সঠিকভাবে বুঝতে পারছি কিনা তা নিশ্চিত না - আপনার একটি ডেমো পৃষ্ঠা আছে? আপনি চেষ্টা করতে পারেন:

if (location.hash) {
  setTimeout(function() {

    window.scrollTo(0, 0);
  }, 1);
}

সম্পাদনা করুন: উইন্ডোজের ফায়ারফক্স, আই এবং ক্রোমে পরীক্ষিত এবং কাজ করে।
সম্পাদনা 2: ব্লক, প্রপস @vsync setTimeout()ভিতরে ifযান।


2
নায়ক! হ্যাঁ, আমার "ফিক্স" কাজ করেছে, তবে পৃষ্ঠাটি "স্ক্রোল" করবে (আমার কোড এটি বলেছে), এবং আমি বরং এটি স্ক্রোল না করবো। আপনার কোড নিখুঁতভাবে কাজ করে। আমি স্ক্রোলটো তে তাকাইনি - কাজটি কি এমনকি প্রয়োজনীয়? এটি ঠিক উইন্ডো.সক্রোলটি (0, 0) দিয়ে দুর্দান্ত কাজ করছে বলে মনে হচ্ছে;
রস

3
আমি এটি ফায়ারফক্সে একটি খালি পৃষ্ঠায় চেষ্টা করেছিলাম setTimeoutএবং এটি সর্বদা কার্যকর হয় না। $(function() {যাইহোক এটি jQuery এর মধ্যে থাকলে আপনার সম্ভবত এটির দরকার নেই । আপনার সত্যিই দরকার নেই location.hash, তবে এটি এটিকে ছেড়ে রাখা খুব ভাল তাই ব্রাউজারগুলিকে কিছু করার দরকার নেই। এছাড়াও আপনাকে স্মরণ করিয়ে দেয় যে স্ক্রোলটো কী জন্য!
dave1010

2
আজ আমি একই সমস্যা ছিল। আমাকে আসলে আমার ন্যাভ লিঙ্কগুলিতে হ্যাশ (ট্যাব নাম / href মানগুলির সাথে অভিন্ন) যুক্ত করতে হয়েছিল। আমি আমার ট্যাবগুলিতে 1-চর প্রত্যয় যুক্ত করে শেষ করেছি এবং তারপরে উইন্ডো.লোকেশন.হ্যাশের সাথে তুলনা করার সময় 1 টি (str.slice (0, -1) দ্বারা মানগুলি পৃথক করে রেখেছি এভাবে হ্যাশগুলি আলাদা এবং কোনও জাম্পিং হয় না occurs ।
বিকাশকারী 10

1
ifবাহিরে হওয়া উচিত, না ভিতরে। এছাড়াও, অন্তরালের জন্য সর্বনিম্ন হ'ল প্রায় 10, সুতরাং 0 বা 1 একই..আর 10 ব্রাউজারের উপর নির্ভর করে।
vsync

2
এই হ্যাশট্যাগ ঝাঁপ ব্রাউজার বাধা দেয় না, আপনি 'jumpieness' প্রতিরোধ একটি খালি হ্যাশট্যাগ দিতে হবে, আমার উত্তর এখানে দেখতে stackoverflow.com/a/29823913/826194
Larzan

43

আমার উত্তরটি এখানে দেখুন: স্ট্যাকওভারফ্লো উত্তর

কৌশলটি হ'ল হ্যাশট্যাগটি এএসএপ সরিয়ে ফেলা এবং নিজের ব্যবহারের জন্য এর মান সংরক্ষণ করা:

এটি গুরুত্বপূর্ণ যে আপনি কোডের সেই অংশটি $ () বা $ (উইন্ডো) .লোড () ফাংশনে না রাখুন কারণ এটি অনেক দেরিতে হবে এবং ব্রাউজারটি ইতিমধ্যে ট্যাগটিতে চলে গেছে moved

// store the hash (DON'T put this code inside the $() function, it has to be executed 
// right away before the browser can start scrolling!
var target = window.location.hash,
    target = target.replace('#', '');

// delete hash so the page won't scroll to it
window.location.hash = "";

// now whenever you are ready do whatever you want
// (in this case I use jQuery to scroll to the tag after the page has loaded)
$(window).on('load', function() {
    if (target) {
        $('html, body').animate({
            scrollTop: $("#" + target).offset().top
        }, 700, 'swing', function () {});
    }
});

1
আমি এফএফ-এর সাথে একটি বাগে চলে এসেছিলাম যেখানে আমি একটি লম্বা তালিকার সাথে একটি ডিভের উপর সর্বোচ্চ উচ্চতার ওভারফ্লো-ওয়াই ব্যবহার করছিলাম, এফএফওয়াল্ড নীচে যেখানে স্ক্রিনে লুকানো নোড থাকবে সেগুলি স্ক্রোল করুন। এটি কেবলমাত্র আসল কোডের শীর্ষ তিনটি লাইন ব্যবহার করেছে (মন্তব্য নয়) এবং এটি ফায়ারফক্সের সাথে আমার সমস্যাটিকে সংশোধন করেছে।
JQII

12

আপনি কোন ট্যাবে আছেন তা ট্র্যাক করার অন্যান্য উপায় রয়েছে; সম্ভবত কোনও কুকি বা কোনও লুকানো ক্ষেত্রে মান নির্ধারণ করা ইত্যাদি

আমি বলব যে আপনি যদি পৃষ্ঠাটি লোডের উপর ঝাঁপিয়ে পড়তে না চান তবে আপনি হ্যাশের চেয়ে এই বিকল্পগুলির মধ্যে একটি ব্যবহার করা ভাল because কারণ হ্যাশগুলিকে অগ্রাধিকার হিসাবে ব্যবহার করার মূল কারণ হ'ল আপনি ঠিক যা অনুমতি দিয়েছেন তা হ'ল 'ব্লক করতে চাই।

আরেকটি বিষয় - আপনার হ্যাশ লিঙ্কগুলি ডকুমেন্টের ট্যাগগুলির নামের সাথে মেলে না তবে পৃষ্ঠাটি লাফায় না, তাই সম্ভবত আপনি যদি হ্যাশটি ব্যবহার করতে চান তবে আপনি বিষয়বস্তুটি পরিচালনা করতে পারেন যাতে ট্যাগগুলির নাম আলাদাভাবে দেওয়া হয়। আপনি যদি একটি সামঞ্জস্যপূর্ণ উপসর্গ ব্যবহার করেন তবে আপনি তখনও জাভাস্ক্রিপ্ট ব্যবহার করতে সক্ষম হবেন তার মধ্যে ঝাঁপিয়ে পড়তে।

আশা করি এইটি কাজ করবে.


2
ভাল দিক. জেএস / সিএসএস বন্ধ করে পৃষ্ঠাটি ব্যবহারযোগ্য / অ্যাক্সেসযোগ্য রাখার চেষ্টা করতে ভুলবেন না।
dave1010

12

আমি ডেভ 1010 এর সমাধানটি ব্যবহার করেছি, তবে আমি যখন এটি $ () প্রস্তুত ফাংশনের ভিতরে রেখেছিলাম তখন এটি কিছুটা ঝাপটায়। সুতরাং আমি এটি করেছি: (inside () এর অভ্যন্তরে নয়)

    if (location.hash) {               // do the test straight away
        window.scrollTo(0, 0);         // execute it straight away
        setTimeout(function() {
            window.scrollTo(0, 0);     // run it a bit later also for browser compatibility
        }, 1);
    }

10
  1. ঠিকানায় http://site.com/#abc হ্যাশ <element id="abc" />থাকলে ব্রাউজারটি লাফ দেয় এবং id = "abc" সহ উপাদানটি দৃশ্যমান। সুতরাং, আপনি শুধু ডিফল্টরূপে উপাদান লুকিয়ে উচিত: । পৃষ্ঠাটিতে আইডি = হ্যাশ সহ কোনও দৃশ্যমান উপাদান না থাকলে, ব্রাউজারটি লাফ দেয় না।<element id="anchor" style="display: none" />

  2. ইউআরএলটিতে হ্যাশ যাচাই করে এমন স্ক্রিপ্ট তৈরি করুন এবং তারপরে prppriate উপাদানটি অনুসন্ধান করে এবং দেখায় (এটি ডিফল্টরূপে লুকানো থাকে)।

  3. অনক্লিক ইভেন্টটিকে একটি লিঙ্কে আবদ্ধ করে ডিফল্ট "হ্যাশ-জাতীয় লিঙ্ক" আচরণ অক্ষম করুন এবং return false;অনক্লিক ইভেন্টের ফলাফল হিসাবে নির্দিষ্ট করুন ।

আমি যখন ট্যাবগুলি প্রয়োগ করি, তখন আমি এরকম কিছু লিখেছিলাম:

    <script>
    $(function () {         
        if (location.hash != "") {
            selectPersonalTab(location.hash);
        }
        else {
            selectPersonalTab("#cards");
        }
    });

    function selectPersonalTab(hash) {
        $("#personal li").removeClass("active");
        $("a[href$=" + hash + "]").closest("li").addClass("active");
        $("#personaldata > div").hide();
        location.hash = hash;
        $(hash).show();
    }

    $("#personal li a").click(function (e) {
        var t = e.target;
        if (t.href.indexOf("#") != -1) {
            var hash = t.href.substr(t.href.indexOf("#"));
            selectPersonalTab(hash);
            return false;
        }
    });
</script>

6

উত্তরগুলির কোনওটিই আমার পক্ষে যথেষ্ট ভাল কাজ করে না, আমি পৃষ্ঠাটি অ্যাঙ্কারে ঝাঁপিয়ে দেখছি এবং তারপরে কিছু সমাধানের জন্য শীর্ষে চলেছি, কিছু উত্তর কিছুতেই কাজ করে না, বছরের পর বছর ধরে জিনিসগুলি পরিবর্তিত হতে পারে। আশা করি আমার কাজটি কারওর পক্ষে সহায়তা করবে।

/**
 * Prevent automatic scrolling of page to anchor by browser after loading of page.
 * Do not call this function in $(...) or $(window).on('load', ...),
 * it should be called earlier, as soon as possible.
 */
function preventAnchorScroll() {
    var scrollToTop = function () {
        $(window).scrollTop(0);
    };
    if (window.location.hash) {
        // handler is executed at most once
        $(window).one('scroll', scrollToTop);
    }

    // make sure to release scroll 1 second after document readiness
    // to avoid negative UX
    $(function () {
        setTimeout(
            function () {
                $(window).off('scroll', scrollToTop);
            },
            1000
        );
    });
}

আমি এখনও অবধি সবচেয়ে ভাল সমাধান খুঁজে পেয়েছি। এবং আসলে অনেক কিছু দেখেছি।
মার্কস্কেফ

এই জন্য আপনাকে ধন্যবাদ! কয়েক ঘন্টা চেষ্টা করার পরেও কেবল সেই সমাধান যা আমার জন্য কাজ করেছিল তবে আমার জন্য এই সমাধানের সেরা অংশটি হ'ল আমাকে হ্যাশটি সরাতে হবে না।
ক্রিস ভেকিও

এই স্ক্রোলারটি যদি পৃষ্ঠা লোডের পৃষ্ঠার শীর্ষে ইতিমধ্যে থাকে তবে এটি কাজ করবে না এটি পৃষ্ঠাটি স্বাভাবিকের মতো নীচে স্ক্রোল করবে এবং পৃষ্ঠাটি শেষ হওয়ার পরে এটি শীর্ষে চলে আসে। কেউ কি জানেন এভাবে কেস?
robgha01

@ robgha01 দয়া করে নিশ্চিত হয়ে নিন যে ফাংশনটি যত তাড়াতাড়ি সম্ভব কার্যকর করা হয়েছে এবং কোনও ইভেন্টের জন্য অপেক্ষা না করে, এটি ভুল: $(document).ready(function () { preventAnchorScroll(); });আপনার জাভাস্ক্রিপ্টের একেবারে শুরুতে ফাংশনটি কল করুন। আমি এখন এটি পরীক্ষা করেছি, ক্রোম, ফায়ারফক্স এবং অপেরাতে আমার জন্য কাজ করে।
kdmitry

4

নোংরা সিএসএস কেবলমাত্র প্রতিবারই অ্যাঙ্করটি ব্যবহৃত হওয়ার সময় স্ক্রোল আপ থাকার জন্য স্থির করে (আপনি যদি এখনও স্ক্রল-জাম্পগুলির জন্য অ্যাঙ্করগুলি ব্যবহার করতে চান তবে ডিপলিংকের জন্য খুব দরকারী) দরকারী নয়:

.elementsWithAnchorIds::before {
   content: "";
   display: block;
   height: 9999px;
   margin-top: -9999px; //higher thin page height
}

সুবু চালাক!
দুহাইমে

3

যদিও গৃহীত উত্তরটি ভাল কাজ করে, আমি খুঁজে পেলাম যে কখনও কখনও, বিশেষত বড় আকারের চিত্রযুক্ত পৃষ্ঠাগুলিতে যেগুলি স্ক্রোল বারটি বন্যভাবে ব্যবহার করে লাফিয়ে উঠবে

 window.scrollTo(0, 0);

যা ব্যবহারকারীর জন্য বেশ বিভ্রান্তিকর হতে পারে।

শেষ পর্যন্ত আমি যে সমাধানটি স্থির করেছিলাম তা আসলে খুব সহজ এবং এটি ব্যবহৃত লক্ষ্যমাত্রায় আলাদা আইডি ব্যবহার করা location.hash

উদাহরণ:

এখানে অন্য কয়েকটি পৃষ্ঠার লিঙ্কটি দেওয়া আছে

<a href="/page/with/tabs#tab2">Some info found in tab2 on tabs page</a>

সুতরাং অবশ্যই যদি tab2ট্যাব পৃষ্ঠাগুলিতে আইডি সহ কোনও উপাদান থাকে তবে উইন্ডোটি লোডের সাথে এটিতে লাফিয়ে যাবে।

সুতরাং আপনি এটি আটকাতে আইডিতে কিছু যুক্ত করতে পারেন:

<div id="tab2-noScroll">tab2 content</div>

এবং তারপর আপনি সংযুক্ত করতে পারবেন "-noScroll"করার location.hashজাভাস্ক্রিপ্ট মধ্যে:

<script type="text/javascript">
    $(function() {

        var tabContent = $(".tab_content");
        var tabs = $("#menu li");
        var hash = window.location.hash;


     tabContent.not(hash + '-noScroll').hide();                           
        if(hash=="") {       //^ here
      $('#tab1-noScroll').fadeIn();
     }
        tabs.find('[href=' + hash + ']').parent().addClass('active');

        tabs.click(function() {
            $(this).addClass('active').siblings().removeClass('active');
            tabContent.hide();
            var activeTab = $(this).find("a").attr("href") + '-noScroll'; 
                                                               //^ and here

            $(activeTab).fadeIn();
           return false;
        });

    });
</script>

2

আমার ক্ষেত্রে সিএসএস পপআপের জন্য অ্যাঙ্কর লিঙ্কটি ব্যবহার করার কারণে আমি এইভাবে ব্যবহার করেছি:

ক্লিক করুনলে প্রথমে পৃষ্ঠাটি অফসেটটি সংরক্ষণ করুন এবং তারপরে স্ক্রোলটপ সেট করুন:

$(document).on('click','yourtarget',function(){
        var st=window.pageYOffset;
        $('html, body').animate({
                'scrollTop' : st
            });
});

অন্যান্য সমাধানগুলি চেষ্টা করার পরে এটিই ছিল যা আমার পক্ষে কাজ করেছিল, আমার ক্ষেত্রে যে ওয়েবসাইটটি আমি কাজ করেছিলাম তা ইউআরএলটিতে # একটি চেকআউটের নির্দিষ্ট অংশটি লোড করার জন্য ব্যবহার করেছিল। ইউআরএলটিতে হ্যাশের জন্য চেকআউট কার্যকারিতা পরিবর্তনের পরিবর্তে আমি এটি ব্যবহার করেছি। ধন্যবাদ
খ্রিস্ট সি

1

আমি মনে করি কার্যকারিতাটি আবার না করে আমি ইউআই ট্যাবগুলির জন্য একটি উপায় খুঁজে পেয়েছি। এখনও পর্যন্ত আমি কোনও সমস্যা পাইনি।

    $( ".tabs" ).tabs();
    $( ".tabs" ).not(".noHash").bind("tabsshow", function(event, ui) { 
        window.location.hash = "tab_"+ui.tab.hash.replace(/#/,"");
        return false;
    });

    var selectedTabHash = window.location.hash.replace(/tab_/,"");
    var index = $( ".tabs li a" ).index($(".tabs li a[href='"+selectedTabHash+"']"));
    $( ".tabs" ).not(".noHash").tabs('select', index);

সব একটি প্রস্তুত ইভেন্টের মধ্যে। এটি হ্যাশের জন্য "ট্যাব_" প্রিপেন্ড করে তবে ক্লিক করা এবং হ্যাশ সহ লোড হওয়া পৃষ্ঠা উভয়ই কাজ করে।


1

এটি বুটস্ট্র্যাপ v3 এর সাথে কাজ করবে

$(document).ready(function() {
  if ($('.nav-tabs').length) {
    var hash = window.location.hash;
    var hashEl = $('ul.nav a[href="' + hash + '"]');
    hash && hashEl.tab('show');

    $('.nav-tabs a').click(function(e) {
      e.preventDefault();
      $(this).tab('show');
      window.location.hash = this.hash;
    });

    // Change tab on hashchange
    window.addEventListener('hashchange', function() {
      var changedHash = window.location.hash;
      changedHash && $('ul.nav a[href="' + changedHash + '"]').tab('show');
    }, false);
  }
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<div class="container">
<ul class="nav nav-tabs">
  <li class="active"><a data-toggle="tab" href="#home">Home</a></li>
  <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
</ul>

<div class="tab-content">
  <div id="home" class="tab-pane fade in active">
    <h3>HOME</h3>
    <p>Some content.</p>
  </div>
  <div id="menu1" class="tab-pane fade">
    <h3>Menu 1</h3>
    <p>Some content in menu 1.</p>
  </div>
</div>
</div>


0

অন্য পদ্ধতির

পৃষ্ঠাটি স্ক্রোল করা হয়েছে কিনা তা পরীক্ষা করে দেখুন এবং কেবলমাত্র পুনরায় অবস্থান পুনরায় সেট করুন:

var scrolled = false;

$(window).scroll(function(){
  scrolled = true;
});

if ( window.location.hash && scrolled ) {
  $(window).scrollTop( 0 );
}

Heres a demo



0

setTimeoutফায়ারফক্সে উপরের পদ্ধতিগুলি নিয়ে আমি খুব বেশি সাফল্য পাইনি ।

সেটটাইমআউটের পরিবর্তে, আমি একটি লোড ফাংশন ব্যবহার করেছি:

window.onload = function () {
    if (location.hash) {
        window.scrollTo(0, 0);
    }
};

দুর্ভাগ্যক্রমে এটি এখনও খুব চটকদার।


কারণ ফটো সহ সমস্ত কিছু পুরোপুরি লোড হওয়ার পরে অনলোড চলে ... তাই অবশ্যই এটি
চটকদার

0

এই সমাধানগুলির সাথে আমার কোনও ধারাবাহিক সাফল্য হয়নি।

স্পষ্টতই জাভাস্ক্রিপ্ট => রেফারেন্সের আগে লাফটি ঘটেছিল এই কারণে ( http://forum.jquery.com/topic/preventing-anchor-jump )

আমার সমাধানটি সিএসএসের সাথে ডিফল্টরূপে সমস্ত অ্যাঙ্করকে শীর্ষে অবস্থান করা।

.scroll-target{position:fixed;top:0;left:0;}

তারপরে লক্ষ্য নোঙ্গরটির পিতামাতার কাছে স্ক্রোল করতে jquery ব্যবহার করুন বা কোনও ভাইবোন (সম্ভবত কোনও ফাঁকা ইম ট্যাগ)

<a class="scroll-target" name="section3"></a><em>&nbsp</em>

যখন URL টি হ্যাশ দিয়ে প্রবেশ করা হয় তখন স্ক্রোল করার জন্য jquery উদাহরণ
(পৃষ্ঠাটি ইতিমধ্যে উইন্ডো / ট্যাবে লোড করা উচিত নয়, এটি অন্যান্য / বাহ্যিক উত্সের লিঙ্কগুলি কভার করে)

setTimeout(function() {
    if (window.location.hash) {               
        var hash = window.location.hash.substr(1);   
        var scrollPos = $('.scroll-target[name="'+hash+'"]').siblings('em').offset().top; 
        $("html, body").animate({ scrollTop: scrollPos }, 1000);    
    }
}, 1);

এছাড়াও আপনি পৃষ্ঠায় থাকাকালীন অ্যাঙ্কর ক্লিকগুলির জন্য ডিফল্ট প্রতিরোধ করতে এবং তার লক্ষ্যগুলিতে স্ক্রোল করতে চান

<a class="scroll-to" href="#section3">section three</a>

এবং jquery

$('a.scroll-to').click(function(){
    var target = $(this).attr('href').substr(1);
    var scrollPos = $('.scroll-target[name="'+target+'"]').siblings('em').offset().top; 
    $("html, body").animate({ scrollTop: scrollPos }, 1000);
    return false;
});

এই পদ্ধতিটির ভাল জিনিস হ'ল অ্যাঙ্কর ট্যাগ লক্ষ্যগুলি, প্রাসঙ্গিক সামগ্রীর পাশে কাঠামোগতভাবে থাকুন, যদিও তাদের সিএসএসের অবস্থান শীর্ষে রয়েছে।

এর অর্থ এটি হওয়া উচিত যে অনুসন্ধান ইঞ্জিন ক্রলারগুলির কোনও সমস্যা হবে না।

চিয়ার্স, আমি আশা করি এটি
গ্রেকে সাহায্য করবে


0

হ্যাশচেঞ্জড (আপনার ইভেন্ট হ্যান্ডলারের অভ্যন্তরে) কোনও ধরণের উল্লম্ব স্ক্রোলিং থেকে ক্লায়েন্টকে আটকাতে এটি চেষ্টা করুন:

var sct = document.body.scrollTop;
document.location.hash = '#next'; // or other manipulation
document.body.scrollTop = sct;

(ব্রাউজার পুনরায় আঁকা)


0

এটি করে আমার প্রলেম সমাধান করেছেন:

// navbar height 
var navHeigth = $('nav.navbar').height();    

// Scroll to anchor function
var scrollToAnchor = function(hash) {
  // If got a hash
  if (hash) {
    // Scroll to the top (prevention for Chrome)
    window.scrollTo(0, 0);
    // Anchor element
    var term = $(hash);

    // If element with hash id is defined
    if (term) {

      // Get top offset, including header height
      var scrollto = term.offset().top - navHeigth;

      // Capture id value
      var id = term.attr('id');
      // Capture name value
      var name = term.attr('name');

      // Remove attributes for FF scroll prevention
      term.removeAttr('id').removeAttr('name');
      // Scroll to element
      $('html, body').animate({scrollTop:scrollto}, 0);

      // Returning id and name after .5sec for the next scroll
      setTimeout(function() {
        term.attr('id', id).attr('name', name);
      }, 500);
    }
  }
};

// if we are opening the page by url
if (location.hash) {
  scrollToAnchor(location.hash);
}

// preventing default click on links with an anchor
$('a[href*="#"]').click(function(e) {
  e.preventDefault();
  // hash value
  var hash = this.href.substr(this.href.indexOf("#"));
  scrollToAnchor(hash);
});`
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.