টিএল; ডিআর: আমি জাভাস্ক্রিপ্টের মাধ্যমে দেওয়া পরিবর্তনগুলিতে স্টিকি কি আসলে প্রতিক্রিয়া জানাতে সক্ষম? যদি তাই হয়, কিভাবে?
(প্রকল্পটি ফাউন্ডেশন 6.2 এবং ওয়ার্ডপ্রেস 4.4 ব্যবহার করছে, থিমটি নোড.জেএস / এনপিএম এবং গুল্প ৪.০ ব্যবহার করে ইনস্টল করা হয়েছে My
আমি nav
ফাউন্ডেশনের স্টিকি প্লাগইন ব্যবহার করে বারটিকে স্টিকি করতে চাই তবে আমি যখন একটি বোতামে ক্লিক করি তখনই। এর অর্থ হ'ল যখন ডিওএম সব শেষ হয়ে যায়, nav
বারটি "নিজেই" আটকা উচিত নয়, তবে নথিতে তার শীর্ষ অবস্থানে থাকা উচিত। অতিরিক্তভাবে, স্ক্রোল ডাউন করার সময় এটি অদৃশ্য হওয়া উচিত, তবে স্ক্রোলিংয়ের সময় আটকে দিন।
nav
বার সঠিকভাবে সমস্ত প্রয়োজনীয় জড়িয়ে রাখা হয়েছে div
, এস, যাতে nav
বার বিদ্ধ করতে সক্ষম হয়। "অতিরিক্ত" অংশ নিয়ে সমস্যাগুলি দেখা দেয়। আমার ধারণা হ'ল প্রথমে পিএইচপি ব্যবহার করে স্টিকিটিকে তাত্পর্যপূর্ণ করা:
<div data-sticky-container>
<header class="header" role="banner" id="sticky_header" data-sticky data-top-anchor="1"
data-btm-anchor="content:top" data-options="marginTop:0;" style="width:100%"
>
<?php get_template_part('parts/nav', 'offcanvas-topbar'); ?>
</header>
</div>
এর পরে, data-btm-anchor
জাভাস্ক্রিপ্ট ব্যবহার করে বর্তমান স্ক্রোল অবস্থানে পরিবর্তন করুন যা ক্লিকে সরিয়ে দেওয়া হয়েছে। এটি আমার পছন্দ মতো কাজ করে নি। আমি এখন পর্যন্ত যা চেষ্টা করেছি:
- ব্যবহার করার সময়
getElementByID
এবং তারপরেsetAttribute
,data-btm-anchor
পিএইচপি ফাইলের ফায়ারব্যাগ অনুসারে পরিবর্তিত হয়, তবে এটিnav
বারটিকে কিছুটা প্রভাবিত করে না ; এটি যেখানে থাকে সেখানেই থাকে। আমার কি স্টিকিকে "পুনর্বহাল" করা দরকার, এবং যদি তা হয় তবে কীভাবে? - ডক্স উল্লেখ:
জাভাস্ক্রিপ্টের সাহায্যে বিকল্পগুলি নির্ধারণের সাথে কোনও বস্তুটি কনস্ট্রাক্টর ফাংশনে পাস করা জড়িত:
var options = { multiExpand: true, allowAllClosed: false }; var accordion = new Foundation.Accordion($('#some-accordion'), options);
এর অর্থ কি আমি ইতিমধ্যে বিদ্যমান প্লাগইন দৃষ্টান্তে নতুন প্যারামিটারগুলি পাস করতে পারি ? যখনই আমি আমার বিকল্পগুলিতে অ্যারে প্যারামিটার হিসাবে আমার বিচ্ছিন্ন বিটিএমআঙ্করFoundation.Sticky
ছাড়া আর কিছুই না দিয়ে নতুন কিছু পাস করেছি , কিছুই ঘটেনি।jQuery('#sticky_header')
ডক্স এছাড়াও প্রোগ্রামেটিক্যালি উত্থাপন করা আমার "sticky_header" করার স্টিকি যোগ। যদি এটি কাজ করে, আমি সরাসরি jQuery অবজেক্টটি পরিবর্তন করার চেষ্টা করতে পারি। এখনও অবধি আমি সফলভাবে দ্বারা আমার শিরোনামে স্টিকি প্লাগইনটি বাঁধতে সক্ষম হয়েছি:
- .js নিক্ষেপ করা হচ্ছে যা থেকে বোতামটি তার ফাংশনটিতে প্রবেশ করে
assets/js/scripts
(এবং তারপরে চলমানgulp
) - আমার থেকে সমস্ত ডেটা-স্টিকি ট্যাগ মুছে ফেলা হচ্ছে
<header class="header">
, সুতরাং যখন ডিওএম লোডিং শেষ করে শিরোনামে কোনও স্টিকি প্লাগইন নিবন্ধিত নেই there's প্রোগ্রামক্রমে প্লাগইন যুক্ত:
function button_fire(){ var options = { topAnchor:"1", btmAnchor:"footer:top", marginTop:"1" }; var stick = new Foundation.Sticky(jQuery('.header'), options); }
শিরোলেখ এখন ফায়ারব্যাগ অনুসারে "স্টিকি" ক্লাস অর্জন করবে। তবে এটি এখনও কাজ করে না - বরং এটি বিভ্রান্ত হয়: "শিরোলেখের স্থান" কিছুটা ধসে গেছে ফলে এটি
div
নীচে "সামগ্রী" কে সামান্য coveringেকে রেখেছে । আপনি কি জানেন, শিরোলেখ স্টিক করে না। এটা কি বাগ?মনে করুন এটি এখন "উজ্জ্বলভাবে" কাজ করবে, আমি কি তাত্ত্বিকভাবে ডিফারেন্সিং
var stick
বা ব্যবহার করে বৈশিষ্ট্যগুলি পরিবর্তন করতে সক্ষম বাjQuery('#sticky_header')
বাjQuery('.header')
?- .js নিক্ষেপ করা হচ্ছে যা থেকে বোতামটি তার ফাংশনটিতে প্রবেশ করে
এই সর্বোপরি, jQuery এর মতো কাজ করে না। $
আমার স্ক্রিপ্টগুলিতে ব্যবহার করতে আমার অনেক সমস্যা হয়েছে এবং উদাহরণস্বরূপ, destroy()
স্টিকির পদ্ধতিটি আমি এটির কারণে চালাতে পারি না (এটি যদি কাজ করে তবে আমি স্টিকির একটি উদাহরণটিকে নতুন করে তৈরি করার জন্য নষ্ট করে দিতে পারি) btmAnchor
একটি নতুন স্ক্রলিং অবস্থানে সেট)। আমি এর জন্য আরও একটি প্রশ্ন খুলব।
wp_enqueue_script( 'jquery' );
দুর্ভাগ্যক্রমে এখনও আগের মতো একই সমস্যা। অথবা আমি jQuery ভুলভাবে সন্নিবেশিত করেছি? জোড়সডব্লিউপি এর নিজস্ব কিছু jQuery libs আছে?