目次
1. はじめに
2. 具体的な実装コード
2.1 JavaScript 技術で右サイドバーの固定スクロール効果を実現
2.2 jQuery 技術で右サイドバーの固定スクロール効果を実現
ホームページ ウェブフロントエンド htmlチュートリアル 右サイドバーのスクロール効果を修正_html/css_WEB-ITnose

右サイドバーのスクロール効果を修正_html/css_WEB-ITnose

Jun 24, 2016 am 11:22 AM

1. はじめに

Web を閲覧するとき、右側 (左側) のサイドバーの高さは、記事のメイン コンテンツの高さほど高くないことは誰もが知っています。ページが右 (左) サイドバーの高さを超えて下にスライドすると、右 (左) サイドバーは非表示になります。

右(左)サイドバーを常に部分的に表示するにはどうすればよいですか?

解決策: 右 (左) サイドバーの下部が視覚化されると、視覚化領域の下部に固定されます。つまり、スクロールの高さと画面(表示領域)の高さが右(左)サイドバーの高さより大きい場合、右(左)サイドバーは固定されます。

2. 具体的な実装コード

2.1 JavaScript 技術で右サイドバーの固定スクロール効果を実現

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">        <title>JavaScript技术实现固定右侧边栏滚动特效</title>        <meta name="keywords" content="">        <meta name="description" content="">        <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">        <link rel="shortcut icon" href="img/favicon.ico">        <link rel="apple-touch-icon" href="img/touchicon.png">        <link rel="stylesheet" href="css/style.css">    </head>    <body>        <div id="main">            <article id="content">                <!--CODE-->            </article>            <aside id="sidebar">                <!--CODE-->            </aside>        </div>        <script>            //通过一个元素的id获得这个元素的DOM引用            var $ = function(id) {                return document.getElementById(id);            }            //监听window的滚动事件,事件绑定函数            ////addEvent函数:用于给一个元素绑定多个事件            var addEvent = function(obj, event, fn) {//三个参数分别为元素对象名字、绑定事件、触发的回调函数                if(obj.addEventListener) {                    obj.addEventListener(event, fn, false);                }else if(obj.attachEvent) {//IE浏览器兼容                    obj.attachEvent('on'+event, fn);                }            }            var domSider = $('sidebar');            var scrollEvent = function() {                var sidebarHeight = domSider.offsetHeight;//右侧边栏高度                var screenHeight = document.documentElement.clientHeight || document.body.clientHeight;//屏幕高度                var scrollHeight = document.documentElement.scrollTop || document.body.scrollTop;//滚动高度                if(scrollHeight + screenHeight > sidebarHeight) {                    domSider.style.cssText = 'position:fixed;right:0px;top:' + (-(sidebarHeight - screenHeight)) + 'px';                }else{                    domSider.style.position = 'static';                }            }            //解决缩小页面刷新后右侧边栏空白和放大页面右侧边栏底部白边的方法            addEvent(window, 'scroll', function() {//当执行滚动时触发scrollEvent事件                scrollEvent();                      });            addEvent(window, 'resize', function() {//当resize时触发scrollEvent事件                scrollEvent();            });        </script>    </body></html>
ログイン後にコピー

2.2 jQuery 技術で右サイドバーの固定スクロール効果を実現

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">        <title>jQuery技术实现固定右侧边栏滚动特效</title>        <meta name="keywords" content="">        <meta name="description" content="">        <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">        <link rel="shortcut icon" href="img/favicon.ico">        <link rel="apple-touch-icon" href="img/touchicon.png">        <link rel="stylesheet" href="css/style.css"/>    </head>    <body>        <div id="main">            <article id="content">                <!--CODE-->            </article>            <aside id="sidebar">                <!--CODE-->            </aside>        </div>        <script src="https://code.jquery.com/jquery.js"></script>        <script>            var jWindow = $(window);//jqueryWindow对象            jWindow.scroll(function() {//事件绑定,监听window上的滚动对象                var windowHeight = jWindow.scrollTop() + jWindow.height();//滚动高度+屏幕高度                var sidebarHeight = $('#sidebar').height();//右侧边栏高度                if(windowHeight > sidebarHeight) {//设置fixed条件判断(滚动高度+屏幕高度>右侧边栏高度)                    $('#sidebar').css({                        'position' : 'fixed',                        right : '0px',                        top : -(sidebarHeight - $(window).height())                    });                }else{                    $('#sidebar').css({                        'position' : 'static'                    });                }            });            //解决缩小页面刷新后右侧边栏空白和放大页面右侧边栏底部白边的方法            window.onload = function() {//当执行滚动时触发scrollEvent事件                jWindow.trigger('scroll');            };            jWindow.resize(function() {//当resize时触发scrollEvent事件                jWindow.trigger('scroll');            });        </script>    </body></html>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

See all articles