search
HomeWeb Front-endCSS TutorialHow to achieve smooth scrolling to anchor position using CSS

How to achieve smooth scrolling to anchor position using CSS

Nov 21, 2023 pm 03:28 PM
csssmooth scrollinganchor point

How to achieve smooth scrolling to anchor position using CSS

How to use CSS to achieve smooth scrolling to the anchor position

In web design, the anchor position refers to a specific position on the page. When the user clicks on the page When linked, the page will smoothly scroll to that location. This effect not only brings a good user experience, but also improves the beauty of the page. This article will introduce how to use CSS to achieve smooth scrolling to the anchor point position, and give specific code examples.

1. HTML structure

First, we need to set anchor points in HTML. Add an id attribute to the position where smooth scrolling is required as the identifier of the anchor point. For example:

<div id="section1">
  <!-- 具体内容 -->
</div>

<div id="section2">
  <!-- 具体内容 -->
</div>

In the code, we have created two anchor positions, which are set to section1 and section2 using the id attribute.

2. CSS Style

Next, we need to set the CSS style to achieve a smooth scrolling effect. First, we will add a scrolling behavior transition to the body element. In CSS, we can use the scroll-behavior attribute to set the scrolling behavior to smooth scrolling. The code is as follows:

body {
  scroll-behavior: smooth;
}

In this way, when we click the anchor link, the page will scroll smoothly to the target position.

3. Add anchor link

In order to smoothly scroll to the anchor position, we need to add an anchor link to the page. Where you need to scroll to, such as a navigation menu or other link location, use an a tag to create a link, and set the link's href attribute to the ID of the anchor location. For example:

<a href="#section1">跳转到Section 1</a>
<a href="#section2">跳转到Section 2</a>

In this way, when the user clicks on the link, the page will scroll smoothly to the corresponding anchor position.

4. Compatibility considerations

Although the above method can work normally in most modern browsers, the scroll-behavior attribute may not be supported in some older versions of browsers. To ensure it works properly in all browsers, we can use JavaScript to achieve a smooth scrolling effect.

// JavaScript代码示例

$('a[href*="#"]').on('click', function(e){
  e.preventDefault();

  $('html, body').animate(
    {
      scrollTop: $($(this).attr('href')).offset().top,
    },
    800,
    'linear'
  );
});

This code will use animation effects to smoothly scroll to the anchor position when the anchor link is clicked. It should be noted that the jQuery library needs to be introduced to achieve this effect.

Summary

Through the scroll-behavior property of CSS, we can easily achieve a smooth scrolling effect. Of course, in order to ensure that it works properly on different browsers, we can also use JavaScript to achieve this effect. Whether it is CSS or JavaScript, the smooth scrolling effect can enhance the user experience and make web pages smoother and more beautiful. Applying this technology to web design can improve the quality and user evaluation of the website.

The above is the detailed content of How to achieve smooth scrolling to anchor position using CSS. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
The Ultimate Guide to Linking CSS Files in HTMLThe Ultimate Guide to Linking CSS Files in HTMLMay 13, 2025 am 12:02 AM

Linking CSS files to HTML can be achieved by using elements in part of HTML. 1) Use tags to link local CSS files. 2) Multiple CSS files can be implemented by adding multiple tags. 3) External CSS files use absolute URL links, such as. 4) Ensure the correct use of file paths and CSS file loading order, and optimize performance can use CSS preprocessor to merge files.

CSS Flexbox vs Grid: a comprehensive reviewCSS Flexbox vs Grid: a comprehensive reviewMay 12, 2025 am 12:01 AM

Choosing Flexbox or Grid depends on the layout requirements: 1) Flexbox is suitable for one-dimensional layouts, such as navigation bar; 2) Grid is suitable for two-dimensional layouts, such as magazine layouts. The two can be used in the project to improve the layout effect.

How to Include CSS Files: Methods and Best PracticesHow to Include CSS Files: Methods and Best PracticesMay 11, 2025 am 12:02 AM

The best way to include CSS files is to use tags to introduce external CSS files in the HTML part. 1. Use tags to introduce external CSS files, such as. 2. For small adjustments, inline CSS can be used, but should be used with caution. 3. Large projects can use CSS preprocessors such as Sass or Less to import other CSS files through @import. 4. For performance, CSS files should be merged and CDN should be used, and compressed using tools such as CSSNano.

Flexbox vs Grid: should I learn them both?Flexbox vs Grid: should I learn them both?May 10, 2025 am 12:01 AM

Yes,youshouldlearnbothFlexboxandGrid.1)Flexboxisidealforone-dimensional,flexiblelayoutslikenavigationmenus.2)Gridexcelsintwo-dimensional,complexdesignssuchasmagazinelayouts.3)Combiningbothenhanceslayoutflexibilityandresponsiveness,allowingforstructur

Orbital Mechanics (or How I Optimized a CSS Keyframes Animation)Orbital Mechanics (or How I Optimized a CSS Keyframes Animation)May 09, 2025 am 09:57 AM

What does it look like to refactor your own code? John Rhea picks apart an old CSS animation he wrote and walks through the thought process of optimizing it.

CSS Animations: Is it hard to create them?CSS Animations: Is it hard to create them?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@keyframes CSS: The most used tricks@keyframes CSS: The most used tricksMay 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatilityandpowerincreatingsmoothCSSanimations.Keytricksinclude:1)Definingsmoothtransitionsbetweenstates,2)Animatingmultiplepropertiessimultaneously,3)Usingvendorprefixesforbrowsercompatibility,4)CombiningwithJavaScriptfo

CSS Counters: A Comprehensive Guide to Automatic NumberingCSS Counters: A Comprehensive Guide to Automatic NumberingMay 07, 2025 pm 03:45 PM

CSSCountersareusedtomanageautomaticnumberinginwebdesigns.1)Theycanbeusedfortablesofcontents,listitems,andcustomnumbering.2)Advancedusesincludenestednumberingsystems.3)Challengesincludebrowsercompatibilityandperformanceissues.4)Creativeusesinvolvecust

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),