쫓는 부동틀 만들기

하고 싶은 일


이런 사교 틀은 기사를 굴려도 따라오는 느낌이다
http://websae.net/wordpress-starter-theme-20141104/

구조


jQuery를 사용하여 지정된 위치 아래로 스크롤하면 상자의 디스플레이 속성이 absolute에서fixed로 바뀝니다.

출처


article.html
<div id="float-sns-box">
    ボックス
</div>
style.css
#float-sns-box {
    position: absolute;
    width: 100px;
    height: 470px;
    margin-left: -110px;
    display: block;
    border: #e0e0e0 1px solid;
    z-index: 2;
    background-color: white;
}
floating.js
// HTMLの要素が全て準備できれば処理を行う
var setBoxId = '#float-sns-box';      // スクロールさせる要素
var initOffsetTop = null;   // 要素の初期位置
$(document).ready(function() {
    // 初期位置取得
    initOffsetTop = $(setBoxId).offset().top;

});

//スクロールしたらこの処理が走る
$(window).scroll(function() {
    scrollbox();
});

// スクロール処理
function scrollbox(){
    // 初期位置が取れていなければ処理を抜ける
    if(initOffsetTop == null) return;

    // 現在のスクロール位置を取得
    var scrollTop = $(document).scrollTop();

    // スクロールさせる要素の初期位置と現在のスクロールの位置を比較
    //初期位置より下にスクロールした時
    if(initOffsetTop < scrollTop) {
        // positionを設定
        $(setBoxId).css('position', 'fixed');
        // topの位置を設定
        $(setBoxId).animate({top: '10'}, {duration: 0});
    } else {
        // 設定したスタイルを持とに戻す
        $(setBoxId).css('position', 'absolute');
        $(setBoxId).animate({top: initOffsetTop}, {duration: 0});
    }
}
이상이면 됩니다.

좋은 웹페이지 즐겨찾기