頁面全屏垂直平滑滾動程式碼例項
本章節分享一段程式碼例項,它實現了網頁全屏垂直滾動效果。
並且詳細介紹一下它的實現過程,需要的朋友可以做一下參考。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> body { margin: 0; height: 100%; overflow:hidden; } #a111 { position: fixed; width: 1000px; left: 10%; } #a111 a { display: block; width: 150px; height: 20px; background: #000; color: #fff; float: left; } #a111 a:hover { background: #f60; } #b11 { height: 1000px; background: #090; } #b22 { height: 1000px; background: #fc0; } #b33 { height: 1000px; background: #09d; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> (function ($) { $.extend($.fn, { scrollTo: function (time, to) { time = time || 800; to = to || 1; $('a[href*=#]', this).click(function () { if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { var $target = $(this.hash); $target = $target.length && $target || $('[id=' + this.hash.slice(1) + ']'); if ($target.length) { if (to == 1) { $('html,body').animate({ scrollTop: $target.offset().top }, time); } else if (to == 2) { $('html,body').animate({ crollLeft: $target.offset().left }, time); } else { alert('argument error'); } return false; } } }); } }); })(jQuery); $(function () { $("#a111").scrollTo(700) }); </script> </head> <body> <div id="a111"> <a href="#b11">螞蟻部落一</a> <a href="#b22">螞蟻部落二</a> <a href="#b33">螞蟻部落三</a> </div> <div id="b11">頁面一</div> <div id="b22">頁面二</div> <div id="b33">頁面三</div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).(function ($) {})(jQuery),匿名自執行函式,傳遞的是jQuery物件。
(2).$.extend($.fn, {}),擴充套件$.fn物件。
(3).scrollTo: function (time, to) {},此方法實現了平滑滾動效果,time規定動畫執行的時間,to表示滾動的方位,如果是1,那麼就是垂直滾動,如果是2,那麼就是水平滾動。
(4).time = time || 800,如果傳遞了time,那麼就使用傳遞的引數,否則預設值是800毫秒。
(5).to = to || 1,如果傳遞了to,那麼就用傳遞的引數,否則預設值是1。
(6).$('a[href*=#]', this).click(function () {}),為href屬性值baohan#的連結a元素註冊click事件處理函式。
(7).if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname),location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') 是用來判斷是否是當前頁面錨點定位,location.hostname == this.hostname是用來驗證是否是同域。
(8).var $target = $(this.hash),獲取連結的錨點部分也就是#和#號的後面的部分。
(9).$target = $target.length && $target || $('[id=' + this.hash.slice(1) + ']'),判斷是否存在錨點部分,如果存在那麼就獲取和id對應的元素物件。(10).if ($target.length) {},如果存在指定物件。
(11).if (to == 1) {
$('html,body').animate({
scrollTop: $target.offset().top
}, time);
},進行垂直滾動效果,滾動的尺寸就是指定元素offset().top值。
二.相關閱讀:
(1).location.pathname可以參閱location.pathname一章節。
(2).replace()可以參閱正規表示式replace()函式一章節。
(3).slice()可以參閱javascript slice() 一章節。
(4).animate()方法可以參閱jQuery animate()一章節。
(5).offset()方法可以參閱jQuery offset()一章節。
相關文章
- js頁面全屏垂直滾動效果JS
- js實現的文字垂直滾動例項程式碼JS
- jQuery列表上下垂直滾動效果程式碼例項jQuery
- 帶有滾動條的全屏遮罩層程式碼例項遮罩
- css實現div全屏水平垂直居中效果程式碼例項CSS
- 網頁title標題滾動效果程式碼例項網頁
- javascript實現網頁平滑定位程式碼例項JavaScript網頁
- 計算瀏覽器垂直滾動條的寬度程式碼例項瀏覽器
- 移動端水平滑動刪除程式碼例項
- 美化滾動條效果程式碼例項
- 分享一款jQuery全屏滾動頁面特性案例jQuery
- 移動端頁面大小自適應程式碼例項
- 公告文字水平滾動例項程式碼
- js標題title滾動程式碼例項JS
- css隱藏滾動條程式碼例項CSS
- javascript文字水平滾動程式碼例項JavaScript
- jQuery複製頁面元素程式碼例項jQuery
- div垂直水平居中例項程式碼
- 拖動滾動條實現網頁內容自動載入程式碼例項網頁
- 滑鼠中鍵滾動mousewheel事件例項程式碼事件
- js獲取滾動條高度例項程式碼JS
- 在頁面中插入flash的程式碼例項
- 三種方式實現平滑滾動頁面到頂部的功能
- Three.js 進階之旅:頁面平滑滾動-王國之淚 ?JS
- 10行程式碼實現頁面無限滾動行程
- 表格拖動滾動條標題固定程式碼例項
- 拖動滾動條載入資料程式碼例項
- css水平垂直居中程式碼例項CSS
- js文字橫向無縫滾動程式碼例項JS
- js獲取頁面中所有元素程式碼例項JS
- Scroller平滑滾動
- 頁面出現垂直滾動條導致跳動現象解決方案
- CSS多行文字垂直居中例項程式碼CSS
- jquery判斷滾動是否到達底部程式碼例項jQuery
- javascript模擬實現滾動條效果程式碼例項JavaScript
- 直播帶貨原始碼,vue中點選按鈕平滑滾動到頁面某個div位置原始碼Vue
- js倒數計時關閉頁面程式碼例項JS
- 拖動滾動條實現div跟隨效果程式碼例項