摘要:根據(jù)哈希值中設(shè)置的數(shù)字顯示對(duì)應(yīng)的選項(xiàng)卡內(nèi)容例如對(duì)應(yīng)顯示第索引值為的選項(xiàng)卡內(nèi)容即第二個(gè)選項(xiàng)卡字符串轉(zhuǎn)換為數(shù)字完整案例延伸閱讀我的另一篇用本地存儲(chǔ)方式從一個(gè)頁(yè)面跳轉(zhuǎn)到用寫的全屏滾動(dòng)頁(yè)面的指定位置
選項(xiàng)卡五花八門,今天又要用到選項(xiàng)卡,首選swiper!
一、HTML布局根據(jù)swiper官網(wǎng)的要求來class命名滑塊。
二、CSS樣式
- Div+CSS
- JavaScript+JQuery
- AngularJS+Vue+NodeJs
隨便寫寫,根據(jù)使用場(chǎng)景調(diào)整。(PS:推薦一個(gè)在線美化工具)
*{margin:0;padding:0} li{list-style:none} .box{margin:50px auto;width:800px} .swiperTab{display:flex;width:100%;flex-direction:row;justify-content:center;align-items:center} .swiperTab li{display:flex;height:48px;border-left:1px solid #dfdfdf;background-color:#ddf8ff;cursor:pointer;flex:1;flex-direction:row;justify-content:center;align-items:center} .swiperTab li:first-child{border-left:1px solid transparent} .swiperTab li.active{background-color:#f60;color:#fff} .swiperTab li:nth-child(1).active{background-color:#9acd32} .swiperTab li:nth-child(2).active{background-color:green} .swiperTab li:nth-child(3).active{background-color:pink} .swiper-slide{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:20px} .swiper-slide:nth-child(1){height:200px;background-color:#9acd32} .swiper-slide:nth-child(2){height:300px;background-color:green} .swiper-slide:nth-child(3){height:100px;background-color:pink}三、Js封裝
自己封裝的選項(xiàng)卡函數(shù)swiperTab.js
/* swiper 選項(xiàng)卡函數(shù) 參數(shù)說明 * obj 必選,導(dǎo)航列表 * swiperObj: 必選,HTML元素或者string類型,Swiper容器的css選擇器 * className: 必選,當(dāng)前樣式的類名 * effect:可選,切換效果,默認(rèn)為"slide",可設(shè)置為"fade,cube,coverflow,flip"。 * 其他參數(shù)參閱官網(wǎng) http://www.swiper.com.cn * */ function tabs(obj,swiperObj,className) { var tabSwiper = new Swiper(swiperObj, { effect : "flip",//切換效果 speed : 500, //滑動(dòng)速度,單位ms autoHeight: true, // 高度隨內(nèi)容變化 onSlideChangeStart : function() { $(obj+"."+className).removeClass(className); /*有當(dāng)前類名的刪除類名,給下一個(gè)添加當(dāng)前類名*/ $(obj).eq(tabSwiper.activeIndex).addClass(className);/*activeIndex是過渡后的slide索引*/ } }); // 模擬點(diǎn)擊事件,如果是移入事件,將mousedown 改為 mouseenter $(obj).on("touchstart mousedown", function(e) { e.preventDefault();/*清除默認(rèn)事件*/ $(obj+"."+className).removeClass(className); $(this).addClass(className); /*點(diǎn)擊當(dāng)前導(dǎo)航 改變當(dāng)前樣式*/ tabSwiper.slideTo($(this).index());/*滑動(dòng)到對(duì)應(yīng)的滑塊*/ }); $(obj).click(function(e) { e.preventDefault();/*清除默認(rèn)點(diǎn)擊事件*/ }); }四、Js調(diào)用
首先引入相關(guān)js
前端小白剛學(xué)JS。不足之處,不吝言賜教。謝謝!
五、拓展 經(jīng)常遇到從另一個(gè)頁(yè)面直接跳轉(zhuǎn)到選項(xiàng)卡對(duì)應(yīng)的內(nèi)容例如:page.html 中點(diǎn)擊a標(biāo)簽直接跳轉(zhuǎn)到對(duì)應(yīng)展示頁(yè)面。
我們?cè)趆ref中直接添加錨點(diǎn),錨點(diǎn)中包含一個(gè)數(shù)字即對(duì)應(yīng)選項(xiàng)卡的索引值0、1、2
展示 Div+CSS 展示 JavaScript+JQuery 展示 ngularJS+Vue+NodeJs
對(duì)上面的案例稍作修改:
在swiperTab.js中添加設(shè)定初始化時(shí)slide的索引 initialSlide: index
傳入?yún)?shù) index
在回調(diào)函數(shù)中 判斷tabSwiper是否存在,否則當(dāng)哈希值不為0的時(shí)候會(huì)報(bào)錯(cuò) 。
function tabs(obj,swiperObj,className,index) { var tabSwiper = new Swiper(swiperObj, { initialSlide: index, // 設(shè)定初始化時(shí)slide的索引 effect : "flip", speed : 500, autoHeight: true, onSlideChangeStart : function() { if(tabSwiper){ /*判斷tabSwiper是否存在,否則當(dāng)哈希值不為0的時(shí)候會(huì)報(bào)錯(cuò) */ $(obj+"."+className).removeClass(className); $(obj).eq(tabSwiper.activeIndex).addClass(className); } } }); $(obj).on("touchstart mousedown", function(e) { e.preventDefault(); $(obj+"."+className).removeClass(className); $(this).addClass(className); tabSwiper.slideTo($(this).index()); }); $(obj).click(function(e) { e.preventDefault(); }); }
在調(diào)用的時(shí)候 根據(jù)哈希值(因?yàn)槲覀冊(cè)赼標(biāo)簽的href中添加了錨點(diǎn))來改變索引值index從而達(dá)到改變 swiper初始化時(shí)slide的索引的目的
```
完整案例
延伸閱讀我的另一篇用本地存儲(chǔ) 方式 從一個(gè)頁(yè)面跳轉(zhuǎn)到用swiper寫的全屏滾動(dòng)頁(yè)面的指定位置
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/112424.html
摘要:根據(jù)哈希值中設(shè)置的數(shù)字顯示對(duì)應(yīng)的選項(xiàng)卡內(nèi)容例如對(duì)應(yīng)顯示第索引值為的選項(xiàng)卡內(nèi)容即第二個(gè)選項(xiàng)卡字符串轉(zhuǎn)換為數(shù)字完整案例延伸閱讀我的另一篇用本地存儲(chǔ)方式從一個(gè)頁(yè)面跳轉(zhuǎn)到用寫的全屏滾動(dòng)頁(yè)面的指定位置 選項(xiàng)卡五花八門,今天又要用到選項(xiàng)卡,首選swiper! 一、HTML布局 根據(jù)swiper官網(wǎng)的要求來class命名滑塊。 Div+CSS Jav...
摘要:根據(jù)哈希值中設(shè)置的數(shù)字顯示對(duì)應(yīng)的選項(xiàng)卡內(nèi)容例如對(duì)應(yīng)顯示第索引值為的選項(xiàng)卡內(nèi)容即第二個(gè)選項(xiàng)卡字符串轉(zhuǎn)換為數(shù)字完整案例延伸閱讀我的另一篇用本地存儲(chǔ)方式從一個(gè)頁(yè)面跳轉(zhuǎn)到用寫的全屏滾動(dòng)頁(yè)面的指定位置 選項(xiàng)卡五花八門,今天又要用到選項(xiàng)卡,首選swiper! 一、HTML布局 根據(jù)swiper官網(wǎng)的要求來class命名滑塊。 Div+CSS Jav...
摘要:我們?cè)诤瘮?shù)中通過獲取設(shè)備的寬高來設(shè)置組件高度以及高度為導(dǎo)航欄的高度點(diǎn)擊導(dǎo)航欄切換內(nèi)容點(diǎn)擊切換滑動(dòng)內(nèi)容切換導(dǎo)航欄滑動(dòng)切換可滾動(dòng)區(qū)域滾動(dòng)最底刷新數(shù)據(jù)頁(yè)面上拉觸底事件的處理函數(shù)更新列表一個(gè)漂亮的選項(xiàng)卡就完成了完整案例 選項(xiàng)卡隨處可見,微信小程序中也不例外,下面來寫一個(gè)簡(jiǎn)單的小程序選項(xiàng)卡 思路 之前寫過基于swiper的選項(xiàng)卡,在小程序中有swiper組件,毫無疑問這里要用到swiper組件...
摘要:利用這篇教程存儲(chǔ)一些常用的微信小程序開發(fā)技巧,方便查找。但是第一,微信小程序是國(guó)內(nèi)的,有中文文檔,雖然它的文檔說明有點(diǎn)坑,但好歹有文檔,閱讀理解對(duì)小伙伴們來說不是問題。 Create by jsliang on 2018-9-17 17:58:56 Recently revised in 2018-11-19 08:19:13 ?Hello 小伙伴們,如果覺得本文還不錯(cuò),記得給個(gè)...
摘要:利用這篇教程存儲(chǔ)一些常用的微信小程序開發(fā)技巧,方便查找。但是第一,微信小程序是國(guó)內(nèi)的,有中文文檔,雖然它的文檔說明有點(diǎn)坑,但好歹有文檔,閱讀理解對(duì)小伙伴們來說不是問題。 Create by jsliang on 2018-9-17 17:58:56 Recently revised in 2018-11-19 08:19:13 ?Hello 小伙伴們,如果覺得本文還不錯(cuò),記得給個(gè)...
閱讀 1714·2021-09-22 10:02
閱讀 1941·2021-09-02 15:40
閱讀 2843·2019-08-30 15:55
閱讀 2252·2019-08-30 15:44
閱讀 3599·2019-08-30 13:18
閱讀 3231·2019-08-30 11:00
閱讀 1952·2019-08-29 16:57
閱讀 570·2019-08-29 16:41