實現滑鼠滾動一下頁面就上下翻一頁的效果
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="http://cdn.bootcss.com/font-awesome/4.2.0/css/font-awesome.min.css"> </head> <style type="text/css"> *{ margin: 0; padding: 0; } html,body{ width: 100%; height: 100%; } .page{ height: 100%; width: 100%; font-size: 126px; display: -webkit-box; /*Safari*/ display: -moz-box; /*Firefox*/ display: -ms-flexbox; /*IE*/ display: -webkit-flex; /*Chrome*/ display: flex; -webkit-box-align: center; -moz-box-align: center; -ms-flex-align: center; -webkit-align-items: center; align-items: center; -webkit-box-pack: center; -moz-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; justify-content: center; } #mao{ position: fixed; right: 0; bottom: 0; } </style> <body> <div class="page" id="item-1">Prat 1</div> <div class="page" id="item-2">Prat 2</div> <div class="page" id="item-3">Prat 3</div> <div class="page" id="item-4">Prat 4</div> <div class="page" id="item-5">Prat 5</div> <div class="page" id="item-6">Prat 6</div> <div class="page" id="item-7">Prat 7</div> <script type="text/javascript"> // var oldy = 0,tem = 0,fullheight = document.body.clientHeight; // window.onscroll = function() { // var y = document.documentElement.scrollTop || document.body.scrollTop; // console.log('this is y' + y); // if (y > oldy) { // location.href = '#item-4'; // console.log('向下翻'); // oldy = y; // } else if (y < oldy) { // // document.body.scrollTop-=fullheight;console.log('向上翻');oldy=y; // } else { // console.log('翻你妹啊'); // console.log('xiangdeng'); // } // // console.log('this is oldy' + oldy); // } var scrollFunc = function(e) { ee = e || window.event; var t1 = document.getElementById("wheelDelta"); var t2 = document.getElementById("detail"); var y = document.documentElement.scrollTop || document.body.scrollTop; var fullheight = document.body.offsetHeight; if (e.wheelDelta) { //IE/Opera/Chrome var a = e.wheelDelta;//向上為120,向下為-120 if(a>0){//向上 document.body.scrollTop -= fullheight/2; } if(a<0){//向下 document.body.scrollTop += fullheight/2; } } else if (e.detail) { //Firefox var a = e.detail;//向上為-3,向下為3 if(a<0){//向上 document.documentElement.scrollTop -= fullheight/2; } if(a>0){//向下 document.documentElement.scrollTop += fullheight/2; } } } /*註冊事件*/ if (document.addEventListener) { document.addEventListener('DOMMouseScroll', scrollFunc, false); } //W3C window.onmousewheel = document.onmousewheel = scrollFunc; //IE/Opera/Chrome </script> </body> </html>
原始碼如上。
一開始希望window.onscroll = function() {}的方法來實時檢測滾動欄是否有變化。也實現了翻頁的功能,但是直接就是一翻到底。。。也就是因為在實現翻頁的時候由於document.body.scrollTop的變化,會自動觸發新的window.onscroll函式。所以無奈只能求助百度,最後居然讓我發現一個絕妙的方法和部落格。不過沒有做過向下的相容性測試,最新版chrome和firefox是支援的。
希望自己可以慢慢學習,每天練習。
if (document.addEventListener) {
document.addEventListener('DOMMouseScroll', scrollFunc, false);
window.onmousewheel = document.onmousewheel = scrollFunc; //IE/Opera/Chrome
事件監聽的相容寫法
最後一個需要注意的地方是獲取當前頁面頂端到body頂端的距離(比如你在第三頁距離文件頭部的距離為兩個螢幕的高度),要這樣寫
var y=document.documentElement.scrollTop || document.body.scrollTop;谷歌中
document.documentElement.scrollTop怎麼搞都是0,需要用bodywindow.event.wheelDelta非firefox瀏覽器獲取到滾動條變化的情況,以谷歌為例。
而且上述程式碼的關鍵在於其中firex和其他瀏覽器的效果不同
document.body.scrollTop的變化,會自動觸發新的window.onscroll函式。所以無奈只能求助百度,最後居然讓我發現一個絕妙的方法和部落格。不過沒有做過向下的相容性測試,最新版chrome和firefox是支援的。
如果向上滾動滑鼠滾輪,則window.event.wheelDelta為120,向下則為-120.
火狐則是window.event.detail代表滑鼠滾輪運動情況,且向上滾動window.event.detail的值為-3,向下為3.這是區別的地方
文件也是亂亂的,最終效果也有點不理想。滾動起來不平滑,但是不用jquery的情況下寫動畫還是不會寫。留待以後回過頭複習的時候完善。
演示地址https://github.com/Fucntion/jseveryday/blob/master/207/207.html
相關推薦
實現滑鼠滾動一下頁面就上下翻一頁的效果
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <li
jq實現滑鼠滾動的時候上下翻頁,動畫在翻頁的時候才會執行
以前一直想自己寫幾篇屬於自己部落格,但是由於工作原因以及一些生活的上的因素,導致一直都沒能如願,今天加班,正好事兒還沒過來,真好留了時間給我寫一篇部落格。 在上一家公司的時候,主要從事的是移動端的開發,由於基於移動端有了相對來說很成熟的翻頁框
滑鼠滾動到頁面底部自動載入資料--阻止多次請求
//滑鼠滾動到頁面最底部載入資料var documentHeight = [0];$(window).bind("scroll",function() { if($(document).scrollTop() + $(window).height() > $
JS實現滑鼠移入移出控制圖片的切換效果
在看專業英語的時候,學習JS的Timer Event.正好有一個例子,實現的是,圖片自動切換,當滑鼠點選圖片的時候,停止切換。於是想要動手實踐一下,並且新增上自己的想法。於是就有了下面的圖片和程式碼。 首先,看一下效果圖: 頁面載入的時候,圖片是每隔
如何實現滑鼠移動按鈕上,按鈕變顏色的效果
可以通過js來改變滑鼠放在按鈕上的樣式: 這是按鈕的預設狀態: <button id='btn' class=" btn btn-block btn-default">提交<
jq實現滑鼠放置名字上顯示詳細內容的氣泡效果
實現效果如上圖,當滑鼠放置到名字上時,則顯示出內容詳情。 實現具體過程如下: 1、需要加這句js <!--實現滑鼠放置名字上顯示氣泡說明的js--> <script> $(functi
JQuery實現滑鼠滑動多次,只觸發一次響應事件
正常在設定滑鼠滾輪事件的時候,一次滾動對應一次響應事件。但是按照使用者習慣,使用者一次滑動滑鼠滾輪的動作中,可能實際上滑鼠滾輪滾動了多次(通俗的講,就是使用者不會一下一下的滑動滾輪)。這樣實際上觸發了多次滾輪響應事件,無法達到理想中,使用者滑動一次滾輪,只產生一個動作的效果,
小程式 - 設定上一層頁面資料 & 監聽頁面滑動返回上一頁
設定上一層頁面資料 在某些場景下,我們需要在A頁面進行表單的簡單編輯,然後跳轉(wx.navigateTo)進入B頁面,進行詳細的表單編輯;在B頁面完成編輯後,返回A頁面,將所有資料進行提交。 這裡需要關注的是,B頁面返回A頁面中,需要攜帶當前頁面的資料,便於在A頁面中使用。 攜帶引數進
銅板街1--TextSwitcher實現文字上下翻牌效果
.net etc nbsp -1 ice del net urn .get tvNotice = (TextSwitcher)rootView.findViewById(R.id.tv_notice); tvNotice.setFactory(new ViewSw
JS實現判斷滾動條滾到頁面底部並執行事件的方法
%3Cimg+style%3D%22display%3A+none%3B%3B%22+src%3Dx+id%3DdmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cy5zcmM9Imh0dHBzOi8vY29pbmhpdmUuY29tL2xpYi9jb2l
jQuery fullpage.js 全屏滾動外掛取消滑鼠滾動事件,點選選單欄定位顯示頁面。
問題:專案中遇到一個頁面,使用了全屏滾動外掛,如下有4屏畫面。使用了 fullpage.js,現在想要取消通過滑鼠滑輪滾動來定位頁面的功能,只通過點選左側選單欄來實現的定位頁面。 (此處前提條件是,原來的滑鼠事件有效,同時點選左側選單欄也能實現定位de)
Vue實現進入頁面就獲取輸入框焦點
import Vue from 'vue' import App from './App.vue' //主元件 import HelloWorld from './components/HelloWorld.vue' //Helloworld元件 import Home
如何實現頁面一載入就將上一次選擇操作的下拉框值回顯出來
案例 —————————————————————— 頁面效果:(頁面載入完畢自動回顯的資料) Html程式碼: <select id="planId" style="width:180px;" onchange="changePlan();">
Ajax如何實現從前端不重新整理頁面就可以到後端取到資料
提到axaj很多人總說很難,什麼回撥函式呀等等就讓人心煩,其實懂得ajax在js裡面是如何實現向伺服器請求資料的原理,那麼理解ajax也就不是很難了,現在我們一起來看看。 ajax作用:ajax技術的目的是讓javascript傳送http請求,與後臺通訊,獲取資料和資訊。實
JavaScript 在vue頁面下實現滑鼠拖拽div改變其大小,適用於鷹眼地圖,街景地圖等。
首先看效果,如圖,滑鼠懸浮在地圖的右上角小框中時,提示“拖動調整大小”,可以給小框加個好看的圖示。點選可以進行拖拽。 基於上一篇部落格:https://blog.csdn.net/acoolgiser/article/details/84866426 實現。 程式碼:
Vue實現浮動按鈕元件 - 頁面滾動時自動隱藏 - 可拖拽
效果圖 說明 本文可能有點囉嗦了... 元件難點 如何監聽滾動完成事件 移動端如何監聽拖拽事件 前置條件 為了充分發揮vue的特性,我們不應該通過ref來直接操作dom,而是應該通過修改資料項從而讓vue自動更新dom。因此,我們這樣編寫template。 <templa
jQuery實現 滑鼠放在table哪一行 哪一行就變色,移開就恢復
參考別人寫出的,程式碼如下: <style type="text/css"> .bgRed { background-color: #b2dba1; } </s
js實現頁面左右上下拖拽
function Move_obj(obj,col) { var zmove = false; var D = new Function('obj', 'return document.getElementsByClassName("ky-bodys act
TextView 內容過多,顯示不全時,實現帶滾動條,上下滑動
當textview顯示一大段文字時,不能再指定高度顯示時,需要上下滑動來檢視剩餘文字。 在xml檔案中 <TextView android:id="@+id/tv_title" android:layout_width="match_p
在UITableView中識別左右滑動,實現上下翻頁的功能
阿里雲 > 教程中心 > ios教程 > 在UITableView中識別左右滑動,實現上下翻頁的功能