整合營銷服務商

          電腦端+手機端+微信端=數(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)拖拽

          使用:


          主站蜘蛛池模板: 在线视频亚洲一区| 国产爆乳无码一区二区麻豆| 日本精品夜色视频一区二区| 国产精品亚洲专区一区| 久久国产精品最新一区| 无码国产精品一区二区免费I6| 色婷婷AV一区二区三区浪潮| 午夜视频一区二区| 一本一道波多野结衣一区| 波多野结衣免费一区视频 | 99热门精品一区二区三区无码| 国产AV一区二区精品凹凸| 中文字幕精品一区二区2021年| 国产亚洲一区二区三区在线不卡 | 国产精品一区二区三区99| 日韩在线视频不卡一区二区三区 | 99久久精品国产免看国产一区| 国模视频一区二区| 无码人妻精品一区二区三区99性 | 一区二区视频在线| 国产亚洲3p无码一区二区| 久久久人妻精品无码一区| 天码av无码一区二区三区四区 | 中文字幕亚洲一区二区三区| 波多野结衣中文字幕一区二区三区| 精品少妇ay一区二区三区 | 国产高清不卡一区二区| 夜夜添无码试看一区二区三区| 国产综合无码一区二区三区| 国产精品主播一区二区| 国产一区二区三区高清视频 | 一区二区在线视频观看| 亚洲国产综合无码一区二区二三区| 一区二区三区四区精品| 国产成人精品一区二区三区| 国产色情一区二区三区在线播放| 国产美女口爆吞精一区二区| 手机看片一区二区| 亚洲福利一区二区| 日本免费一区二区三区最新| 日本一区二区在线免费观看|