整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          html常用標簽簡單匯總

          1),常用標簽簡單匯總

          前端開發(fā)過程中難免會用到特殊字體,如何引入特殊字體?

          1. 首先你得有字體文件,文件格式為,TTF、OTF、EOT、SVG
          2. 將字體文件放入本地文件夾中或者服務器上
          3. css中引入,以下為引入方法
          @font-face {
            font-family: 'icomoon'; // 這里自定義字體名稱 
            src:  url('fonts/icomoon.eot?'); // 文件路徑或者服務器路徑
            src:  url('fonts/icomoon.eot?') format('embedded-opentype'), // format屬性:字體的格式 主要用于瀏覽器識別
              url('fonts/icomoon.ttf?') format('truetype'),
              url('fonts/icomoon.woff?') format('woff'),
              url('fonts/icomoon.svg?') format('svg');
            font-weight: normal;
            font-style: normal;
            font-display: block;
          }
          
          /* 調(diào)用 */
          body{
              font-family:'icomoon'
          }
          

          注:eot為IE專用,ttf官方說是蘋果和微軟為PostScript 而開發(fā)的字體格式,個人理解為通用格式。woff是壓縮過后輕量級,svg對文本支持不太好

          先在src下面創(chuàng)建"src"下創(chuàng)建文件夾dialogDrag(文件名可以自定義): (目錄crc/dialogDrag)
          然后在此文件下創(chuàng)建 index.js 和 drag.js文件 (
          直接復制這兩個js文件即可)

          drag.js

          export default {
            bind(el, binding, vnode) {
              const dialogHeaderEl = el.querySelector('.el-dialog__header')
              const dragDom = el.querySelector('.el-dialog')
              dialogHeaderEl.style.cssText += ';cursor:move;'
              dragDom.style.cssText += ';top:0px;'
          
              // 獲取原有屬性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
              const getStyle = (() => {
                if (window.document.currentStyle) {
                  return (dom, attr) => dom.currentStyle[attr]
                } else {
                  return (dom, attr) => getComputedStyle(dom, false)[attr]
                }
              })()
          
              dialogHeaderEl.onmousedown = (e) => {
                // 鼠標按下,計算當前元素距離可視區(qū)的距離
                const disX = e.clientX - dialogHeaderEl.offsetLeft
                const disY = e.clientY - dialogHeaderEl.offsetTop
          
                const dragDomWidth = dragDom.offsetWidth
                const dragDomHeight = dragDom.offsetHeight
          
                const screenWidth = document.body.clientWidth
                const screenHeight = document.body.clientHeight
          
                const minDragDomLeft = dragDom.offsetLeft
                const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth
          
                const minDragDomTop = dragDom.offsetTop
                const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight
          
                // 獲取到的值帶px 正則匹配替換
                let styL = getStyle(dragDom, 'left')
                let styT = getStyle(dragDom, 'top')
          
                if (styL.includes('%')) {
                  styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100)
                  styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100)
                } else {
                  styL = +styL.replace(/\px/g, '')
                  styT = +styT.replace(/\px/g, '')
                }
          
                document.onmousemove = (item) => {
                  // 通過事件委托,計算移動的距離
                  let left = item.clientX - disX
                  let top = item.clientY - disY
          
                  // 邊界處理
                  if (-(left) > minDragDomLeft) {
                    left = -minDragDomLeft
                  } else if (left > maxDragDomLeft) {
                    left = maxDragDomLeft
                  }
          
                  if (-(top) > minDragDomTop) {
                    top = -minDragDomTop
                  } else if (top > maxDragDomTop) {
                    top = maxDragDomTop
                  }
          
                  // 移動當前元素
                  dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`
          
                  // emit onDrag event
                  vnode.child.$emit('dragDialog')
                }
          
                document.onmouseup = () => {
                  document.onmousemove = null
                  document.onmouseup = null
                }
              }
            }
          }

          index.js

          import drag from './drag'
          
          const install = (Vue) => {
            Vue.directive('el-drag-dialog', drag)
          }
          
          if (window.Vue) {
            window['el-drag-dialog'] = drag
            Vue.use(install); // eslint-disable-line
          }
          
          drag.install = install
          export default drag

          在main.js中引用:

          import elDragDialog from '@/dialogDrag';//自定義dialog拖拽,此路徑為src/dialogDrag的文件
          
          Vue.use(elDragDialog);

          最后在你使用 Dialog標簽 的時候加 v-el-drag-dialog屬性 就可實現(xiàn)拖拽

          使用:


          主站蜘蛛池模板: 精品国产一区二区三区香蕉事 | 国产精品成人一区无码| 69久久精品无码一区二区| 亚洲丰满熟女一区二区v| av一区二区三区人妻少妇| 亚洲色欲一区二区三区在线观看| 一区二区免费视频| 日本一区二区高清不卡| 亚洲av不卡一区二区三区| 国产丝袜无码一区二区视频| 久久se精品一区精品二区| 日本一区二区三区在线视频| 3D动漫精品一区二区三区| 精品日韩一区二区| 精品中文字幕一区在线| 亚洲av乱码中文一区二区三区 | 久久se精品一区二区| 国产在线视频一区| 岛国精品一区免费视频在线观看| 日韩最新视频一区二区三| 国产探花在线精品一区二区| 无人码一区二区三区视频| 国产麻豆精品一区二区三区v视界| 国产精品亚洲产品一区二区三区| 精品一区二区三区电影| 日本高清一区二区三区 | 国产精品视频一区二区三区经| 国产伦理一区二区| 亚洲AV无码第一区二区三区| 另类一区二区三区| 精品国产一区二区三区色欲| 国产成人久久一区二区不卡三区| 国产精品视频一区| 国产色精品vr一区区三区| 国产人妖视频一区二区 | 一区三区三区不卡| 国产suv精品一区二区33| 波多野结衣一区视频在线| 麻豆va一区二区三区久久浪| 一区国严二区亚洲三区| 一区二区三区国产精品|