91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中怎么利用transform實現扇子效果

發布時間:2021-08-10 14:48:43 來源:億速云 閱讀:109 作者:Leah 欄目:開發技術

JavaScript中怎么利用transform實現扇子效果,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

實現:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Document</title></head><style>.fan { margin: 0 auto; position: relative; top: 100px; width: 50px;}.fan-other { margin: 0 auto; position: relative; top: 300px; width: 50px;}</style><body>  <p class="fan"></p>  <p class="fan-other"></p>  <script>  (function(){    // 扇子類    class Fan {      // Fan類的構造器,接收傳入的參數      // params selector 容器的選擇器      // params options 一些配置參數      // options size 尺寸      // ...      // void return      constructor ( selector, options ) {        // 扇子容器        this.selector = selector        this.wrapper = document.querySelector(selector)        // 默認配置項        let _options = {          size: 'normal' // large        }        // 配置項        this.options = options || _options        // 扇葉的尺寸        this.size = {          width: 50, height: 150        }        // 進行初始化操作        this.init()      }      // 初始化函數      init () {        // 創建扇葉        this.createFanBlade()      }      // 創建扇葉      createFanBlade () {        // 扇葉的數量 當new時size不為normal時,輸出11片扇葉的扇子        let _bladeNumbers = this.options.size === 'normal' ? 9 : 11;        let _fragmentStr = '';        let { width, height } = this.size;        // 扇葉樣式        let _bladeStyle = {          width: width + 'px',          height: height+ 'px',          position: 'absolute',          top: 0, left: 0        }        for (let i = 0; i < _bladeNumbers; i++) {          _bladeStyle.background = this.createRandomColor()//背景顏色隨機           _fragmentStr += `<p ></p>`        }        // 放入扇葉        this.wrapper.innerHTML = _fragmentStr ;        this.createTransition(_bladeNumbers);      }      // 制作動效Style并插入到head中      createTransition (_bladeNumbers) {        let _result = '<style>';        _result += `          ${this.selector} p { transition: all 0.5s; transform-origin: center bottom; }        `;        // 0 1 2 3 4 5 6 7 8 角度轉化 0-8 中間是0° -70°~70°        for (let i = 0; i < _bladeNumbers; i++) {          let _num = (_bladeNumbers - 1) / 2          let _angle = (i - _num) * 70 / _num          _result += `            ${this.selector}:hover p:nth-child(${i+1}){            transform: rotate(${_angle}deg); }          `        }        _result += '</style>'        document.querySelector('head').innerHTML += _result;      }      // 轉換樣式對象為字符串      turnStyleToString (styleObject) {        let _result = ''        for (const key in styleObject) {        _result += key + ':' + styleObject[key] + ';'        }        return _result;      }      // 隨機創建顏色      createRandomColor () {        return "#"+(function(color){          return new Array(7-color.length).join("0")+color;        })((Math.random() * 0x1000000 | 0).toString(16));      }    }    new Fan('.fan')    new Fan('.fan-other', {      size: 'large'    })  })();  </script></body></html>

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

米泉市| 磴口县| 贡嘎县| 辉南县| 松滋市| 洞头县| 崇信县| 兴山县| 英吉沙县| 舟曲县| 定远县| 右玉县| 马尔康县| 泽州县| 芦溪县| 丹凤县| 洪洞县| 万载县| 郧西县| 青川县| 吴旗县| 文水县| 德惠市| 铜陵市| 调兵山市| 伊川县| 辉县市| 凌海市| 庆安县| 奈曼旗| 察雅县| 丘北县| 确山县| 枣阳市| 富锦市| 麦盖提县| 红河县| 吉安市| 甘谷县| 汝阳县| 汉中市|