国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue實現底部側邊工具欄的實例代碼

2019-11-19 13:03:47
字體:
來源:轉載
供稿:網友

下載地址: https://github.com/imxiaoer/FloatToolBar

因為是個常見的功能,所以寫個組件。效果圖如下:

組件具體代碼如下: tool.vue

<template> <ul class="float-tool">  <li class="hasChild">   <span class="tool-icon icon0"></span>   <span>聯系電話</span>   <div class="txtbox">    <span>請撥 102-0012-9242</span>   </div>  </li>  <li>   <span class="tool-icon icon1"></span>   <span>QQ 客服</span>  </li>  <li class="hasChild">   <span class="tool-icon icon2"></span>   <span>APP下載</span>   <div class="picbox">    <img src="./wechat.jpg" alt="微信二維碼">   </div>  </li>  <li class="hasChild">   <span class="tool-icon icon3"></span>   <span>關注微信</span>   <div class="picbox">    <img src="./wechat.jpg" alt="微信二維碼">   </div>  </li>  <li onclick="window.scrollTo(0, 0)">   <span class="tool-icon icon4"></span>   <span>返回頂部</span>  </li> </ul></template><script type="text/ecmascript-6">export default {}</script><style lang="stylus" rel="stylesheet/stylus">.float-tool position: fixed right: 10px bottom: 10px z-index: 99 width: 55px font-size: 12px li  position: relative  margin-bottom: 5px  width: 55px  height: 55px  text-align: center  color: #FFF  background-color: #6b4ec2  cursor: pointer  &.hasChild:hover > div   display: block.tool-icon display: block width: 55px height: 35px background: url('icons.png') no-repeat.icon0 background-position: center -153px.icon1 background-position: center 5px.icon2 background-position: center -50px.icon3 background-position: center -102px.icon4 background-position: center -312px.txtbox display: none position: absolute top: 0px right: 65px width: 150px height: 45px line-height: 45px font-size: 14px padding: 5px background-color: #6b4ec2 &:after  display: block  position: absolute  right: -5px  top: 22px  content: ''  width: 0  height: 0  border-width: 7px 0 7px 7px  border-style: solid  border-color: transparent transparent transparent #6b4ec2.picbox display: none position: absolute top: -30px right: 65px width: 100px height: 100px padding: 5px background-color: #6b4ec2 img  width: 100%  height: 100% &:after  display: block  position: absolute  right: -5px  top: 50px  content: ''  width: 0  height: 0  border-width: 7px 0 7px 7px  border-style: solid  border-color: transparent transparent transparent #6b4ec2</style>

下載地址: https://github.com/imxiaoer/FloatToolBar

補充:下面看下vue 側邊導航欄遞歸顯示 的實例代碼。

import axios from "axios";import tabs1 from "../tab_content/tab1.vue";import myTree from "./items.vue";export default { data() {  return {   theModel: [],  };  props: ["tabs"] }, components: { myTree }, methods: {   tabsvalue(data){   console.log(data)    this.$emit("get-data",data)  } },watch: {}, created() {  axios   .get("../../../static/nav.json")   // .get("。。。")   .then(    function(response) {     var arr = response.data.dActionList;     var zNodes = [];     var farternode = [];     for (var i in arr) {      if (arr[i].desktop == "0" && arr[i].parentId != null) {       farternode.push(arr[i]);      }      if (arr[i].parentId && arr[i].desktop == "1") {       zNodes.push(arr[i]);      }     }     var childNodes = function getChildNodes(      parentId,      zNodes,      nodes,      child,      parentItem     ) {      if (!parentId || !zNodes) return nodes;      var childNode = [];      for (var k in zNodes) {       if (zNodes[k].parentId == parentId) {        if (child) {         childNode.push(zNodes[k]);        } else {         nodes.push(zNodes[k]);        }        childNodes(zNodes[k].id, zNodes, nodes, true, zNodes[k]);       }      }      if (childNode.length > 0 && child) {       parentItem.children = childNode;      }      return nodes;     };     for (var j in farternode) {      farternode[j]["children"] = [];      var nodes = [];      nodes = childNodes(farternode[j].id, zNodes, nodes, false, null);      farternode[j].children = nodes;     }     console.log(farternode);     console.log(nodes);     this.theModel = farternode;    }.bind(this)   )   .catch(function(error) {    console.log(error);   });  console.log(this.$refs.tabsdata) }}; 

  父組件 的js

<template> <div id="navto">   <my-tree v-for="menuItem in theModel" :key="menuItem.id" :model="menuItem" @data-tabsvalue="tabsvalue"></my-tree> </div></template>

父組件的節點

import tabs from '../compont/tabs.vue'export default { name: 'treeMenu', props:["model"], data () {  return {   folderIcon: 'folder',   isDynamicFolder: false,   isOpen: false,  } }, computed: {  isFolder () {   return !!(this.model.children && this.model.children.length)  } }, watch: {  isDynamicFolder () {   this.isOpen = true   this.folderIcon = 'folder-open'  } }, methods: {  tabsvalue(data){   this.$emit("data-tabsvalue",data)  },  run(data){   if(!data.children){    this.tabsvalue(data)     console.log(data.text);     console.log(data.url)   }  },  toggle () {    this.isOpen = !this.isOpen    this.folderIcon = this.isOpen ? 'folder-open' : 'folder'  } }}

子組件的js

<template>  <li>  <span @click="toggle">   <i :class="['icon', (isFolder || isDynamicFolder) ? folderIcon : 'file-text']"></i>   <span class="mousestyle">{{ model.text}}</span>  </span> <!-- <transition name="mybox" > -->  <ul v-if="isOpen">   <span v-for="item in model.children" :key="item.id" @click.stop="run(item)">    <tree-menu :model="item" @data-tabsvalue="tabsvalue">    </tree-menu>   </span>  </ul> <!-- </transition> --> </li></template>

子組件的節點 

總結

以上所述是小編給大家介紹的Vue實現底部側邊工具欄的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泌阳县| 宾川县| 万山特区| 永安市| 顺昌县| 康乐县| 水城县| 安徽省| 巴中市| 太原市| 喀喇沁旗| 忻州市| 神农架林区| 云南省| 沂南县| 定南县| 上饶县| 米易县| 涞水县| 河源市| 故城县| 都江堰市| 合川市| 西藏| 彭山县| 香港 | 郎溪县| 汉寿县| 通化县| 神木县| 龙南县| 阳江市| 汤阴县| 保德县| 贵南县| 安仁县| 若羌县| 枣庄市| 鹿邑县| 山东| 湖南省|