TL; DR:Stickyは、JavaScriptを使用して加えた変更に実際に反応できますか?もしそうなら、どうですか?
(プロジェクトはFoundation 6.2とWordPress 4.4を使用しており、テーマはNode.js / npmとgulp 4.0を使用してインストールされています。私の質問は、詳細には太字でマークされています。)
nav
Foundationのスティッキープラグインを使用してバーをスティッキーにしたいのですが、ボタンをクリックしたときだけです。つまり、DOMがすべて終了しても、nav
バーは「それ自体」に固執するのではなく、ドキュメントの一番上の位置に留まります。さらに、下にスクロールすると消えますが、上にスクロールすると固執します。
nav
バーが正しく、すべての必要に包まれているdiv
ので、S nav
バーが固執することができます。「追加」の部分で問題が発生します。私のアイデアは、最初にPHPを使用してスティッキーをインスタンス化することでした:
<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
クリックで起動するJavaScriptを使用して、現在のスクロール位置に変更します。これはうまくいきませんでした。これまでに試したこと:
- 使用する場合は
getElementByID
、その後とsetAttribute
、data-btm-anchor
PHPファイルの中には、Firebugのに応じて変更を行いますが、それは影響しないnav
バーを少し。それはどこにでも留まります。スティッキーを「再インスタンス化」する必要はありますか。 - ドキュメントが言及します:
JavaScriptでオプションを設定するには、次のようにオブジェクトをコンストラクター関数に渡す必要があります。
var options = { multiExpand: true, allowAllClosed: false }; var accordion = new Foundation.Accordion($('#some-accordion'), options);
つまり、既存のプラグインインスタンスに新しいパラメータを渡すことができるということですか。オプションの配列パラメーターとして、Foundation.Sticky
異なるbtmAnchorだけを含む新しいオブジェクトをmyに渡してjQuery('#sticky_header')
も、何も起こりませんでした。
ドキュメントはまた、私の「sticky_header」にスティッキーを追加するプログラムで提案しています。それがうまくいった場合は、jQueryオブジェクトを直接変更してみることができます。これまでのところ、Stickyプラグインをヘッダーに正常にバインドすることができました。
- ボタンがその機能を取得する.jsをスローする
assets/js/scripts
(そして実行するgulp
) - すべてのデータスティッキータグをmyから削除する
<header class="header">
ため、DOMの読み込みが完了したときにヘッダーに登録されたスティッキープラグインはありません。 プログラムでプラグインを追加する:
function button_fire(){ var options = { topAnchor:"1", btmAnchor:"footer:top", marginTop:"1" }; var stick = new Foundation.Sticky(jQuery('.header'), options); }
Firebugによると、ヘッダーは「スティッキー」クラスを取得します。しかし、それでも機能しません-むしろ、グリッチです。「ヘッダースペース」は多少折りたたまれているため、
div
下の「コンテンツ」をわずかに覆っています。何を知っている、ヘッダーが付いていない。それはバグですか?それがうまくいくと仮定し、「鮮やか」今、私は逆参照によって属性を変更することが理論的にできる午前
var stick
または使用しますjQuery('#sticky_header')
かjQuery('.header')
?- ボタンがその機能を取得する.jsをスローする
とりわけ、jQueryは期待どおりに機能しません。$
スクリプトでの使用に多くの問題があり、たとえば、destroy()
これが原因でスティッキーのメソッドを実行できません(機能した場合、スティッキーのインスタンスを破棄して新しいインスタンスを作成した可能性があります)btmAnchor
新しいスクロール位置へのセット)。これについて別の質問を開きます。
var $ = jQuery
、またはこのような.ready()メソッドの呼び出しに渡し:jQuery(document).ready(function($){ //your code here with using $ or jQuery });
wp_enqueue_script( 'jquery' );
それを行いました。残念ながら、以前と同じ問題がまだあります 。または、jQueryを誤ってエンキューしましたか?JointsWPには独自のjQueryライブラリがありますか?