頁面定位

vue

html:

<div id="app">
  <div class="header">Header</div>
  <ul class="nav" :class="isFixed==true?'is-fixed':''">
    <li @click="change('one')" :class="flag=='one'?'active':''">title One</li>
    <li @click="change('two')" :class="flag=='two'?'active':''">title Two</li>
    <li @click="change('three')" :class="flag=='three'?'active':''">title Three</li>
  </ul>
  <div class="model" id="one">model One</div>
  <div class="model" id="two">model Two</div>
  <div class="model" id="three">model Three</div>
</div>

css:

* {
    padding: 0;
    margin: 0;
}
#app {
    width: 1000px;
    margin: 0 auto;
}
.header, .model {
    margin: 10px 0;
    border: 1px solid #ccc;
    height: 300px;
    line-height: 300px;
    text-align: center;
}
.model {
    height: 500px;
    line-height: 500px;
}
.nav {
    background-color: #333;
    color: #fff;
    border: 1px solid #eee;
    overflow: hidden;
}
.nav li {
    list-style: none;
    width: 33.25%;
    float: left;
    height: 50px;
    line-height: 50px;
    text-align: center;
    cursor: pointer;
    border-right: 1px solid #eee;
}
.nav li:last-child {
    border-right: none;
}
.active{
    background: #FF7D41;
    color: #FFFFFF;
}
.is-fixed{
    position: fixed;
    top: 0;
    z-index: 9;
    width: 1000px;
}

js:

<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            flag: 'one',
            isFixed: false
        },
        methods:{
            // 選項(xiàng)卡效果切換
            change:function(id){
                this.flag=id;
                this.positionToId(id)
            },
            // 吸頂效果
            handleScroll () {  
                let windowScrollY = window.scrollY;  
                if (windowScrollY > 300) {  
                    this.isFixed = true;  
                } else {  
                    this.isFixed = false;  
                }  
            },
            // 頁面定位挤忙,無滾動(dòng)效果
            positionToId (id) {
                let jump = document.querySelector("#"+id)
                let total = jump.offsetTop
                // chrome
                document.body.scrollTop = total
                // firefox
                document.documentElement.scrollTop = total
                // safari
                window.pageYOffset = total
            }
        },
        mounted () {
            window.addEventListener('scroll', this.handleScroll);
        },
        destroyed () {
            window.removeEventListener('scroll', this.handleScroll);
        }
    })
</script>

jQuery

$('html,body').animate({scrollTop:total + 'px'}, 500)

Vue+jQuery

因效果需要做成點(diǎn)擊滾動(dòng)到指定的位置歹苦,而vue中我又不知道如何實(shí)現(xiàn)混槐,所以就在vue中引入了jQuery,使用jQuery來實(shí)現(xiàn)滾動(dòng)。(這里寫的有些粗糙了拓哟,將就看吧...)
step1: 在vue中引入jQuery
在vue中引入jQuery
step2: 實(shí)現(xiàn)效果
html:

<ul class="nav" :class="isFixed==true?'is-fixed':''">
    <li @click="change('one')" :class="flag=='one'?'active':''">title One</li>
    <li @click="change('two')" :class="flag=='two'?'active':''">title Two</li>
    <li @click="change('three')" :class="flag=='three'?'active':''">title Three</li>
</ul>

css:

.active{
    background: #FF7D41;
    color: #FFFFFF;
}
.is-fixed{
    position: fixed;
    top: 0;
    z-index: 9;
    width: 1000px;
}

js:

change(id) {
    var that = this
    let jump = document.getElementById(id)
    // 70為導(dǎo)航欄的高度
    let total = jump.offsetTop - (this.isFixed ? 70 : 140)
    $('html,body').animate({scrollTop: total + 'px'}, 500, () => {
        // 點(diǎn)擊后頁面滾動(dòng)几缭,無論高度是否達(dá)到變化的值都讓它激活變化
        that.flag = id
    })
},
handleScroll () {
    // 這里根據(jù)實(shí)際情況自行修改河泳,box為我包裹導(dǎo)航及各模塊的類
    this.isFixed = window.scrollY > document.getElementById('box').offsetTop
    if (window.scrollY >= document.getElementById('one').offsetTop - 70) {
        this.flag = 'one'
    }
    if (window.scrollY >= document.getElementById('two').offsetTop - 70) {
        this.flag = 'two'
    }
    if (window.scrollY >= document.getElementById('three').offsetTop - 70) {
        this.flag = 'three'
    }
},

網(wǎng)站導(dǎo)航

網(wǎng)站導(dǎo)航

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市年栓,隨后出現(xiàn)的幾起案子拆挥,更是在濱河造成了極大的恐慌,老刑警劉巖某抓,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纸兔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡否副,警方通過查閱死者的電腦和手機(jī)食拜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來副编,“玉大人负甸,你說我怎么就攤上這事”越欤” “怎么了呻待?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)队腐。 經(jīng)常有香客問我蚕捉,道長(zhǎng),這世上最難降的妖魔是什么柴淘? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任迫淹,我火速辦了婚禮,結(jié)果婚禮上为严,老公的妹妹穿的比我還像新娘敛熬。我一直安慰自己,他們只是感情好第股,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布应民。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诲锹。 梳的紋絲不亂的頭發(fā)上繁仁,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音归园,去河邊找鬼黄虱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛庸诱,可吹牛的內(nèi)容都是我干的悬钳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼偶翅,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了碉渡?” 一聲冷哼從身側(cè)響起聚谁,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滞诺,沒想到半個(gè)月后形导,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡习霹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年朵耕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淋叶。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阎曹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出煞檩,到底是詐尸還是另有隱情处嫌,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布斟湃,位于F島的核電站熏迹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏凝赛。R本人自食惡果不足惜注暗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望墓猎。 院中可真熱鬧捆昏,春花似錦、人聲如沸毙沾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膨俐,卻和暖如春勇皇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背焚刺。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工敛摘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乳愉。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓兄淫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蔓姚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捕虽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1 Webpack 1.1 概念簡(jiǎn)介 1.1.1 WebPack是什么 1、一個(gè)打包工具 2坡脐、一個(gè)模塊加載工具 3...
    Kevin_Junbaozi閱讀 6,677評(píng)論 0 16
  • 最近在逛各大網(wǎng)站泄私,論壇,以及像SegmentFault等編程問答社區(qū)备闲,發(fā)現(xiàn)Vue.js異成味耍火爆,重復(fù)性的提問和內(nèi)容...
    忘川慕白閱讀 5,946評(píng)論 7 113
  • 一:什么是閉包恬砂?閉包的用處咧纠? (1)閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。在本質(zhì)上泻骤,閉包就 是將函數(shù)內(nèi)部和函數(shù)外...
    xuguibin閱讀 9,633評(píng)論 1 52
  • 本篇系 彩云之南歷史文化故事 系列之一 壹漆羔、驚夢(mèng) 貳、儺舞 叁狱掂、朝辯 肆钧椰、鸞心 伍、國(guó)殤 陸符欠、涉江 柒嫡霞、禮魂 捌、...
    霍子荷閱讀 631評(píng)論 0 15
  • 今天看了《后來的我們》希柿≌锘Γ哭傻了,全程都是淚點(diǎn)曾撤。仿佛看到當(dāng)年的自己端姚,為一個(gè)人奮不顧身。所有的喜悲都系于他可是他卻全然...
    逆天小蝴蝶閱讀 178評(píng)論 0 0