亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

vue實現tab切換的放大鏡效果

瀏覽:2日期:2023-12-11 14:42:49

本文實例為大家分享了vue實現tab切換的放大鏡效果的具體代碼,供大家參考,具體內容如下

廢話不多說先看效果圖

vue實現tab切換的放大鏡效果

1.我這里并沒有加遮罩層,如有需要請自行加上

2.圖片建議使用4k高清圖片,不然放大后模糊,影響觀看心情

3.不用拘泥于樣式,關注實現原理即可

4.可能我的方法并不簡便,但是也是一種思路,請大家參考

實現原理

第一肯定需要vue.js

第二需要兩張圖片

左邊為現實圖片,右邊放大后的效果圖其實一直存在,只不過鼠標移入現實,鼠標移出消失

放大的圖片并不是真正的放大,而是在img標簽外套了一個父元素,將img標簽的寬高都設置為百分之一百以上,至于放大多少你就設置多少,然后給父元素設置超出隱藏,再設置display:none讓元素隱藏,等到鼠標移入左邊大圖的時候再顯示

至于如何讓鼠標移動放大的圖片也會移動就是要獲取鼠標在元素上移動的位置,用鼠標移動事件觸發,然后給放大后的圖片設置相對定位然后將鼠標的移動的X軸位置和Y軸位置分別賦值給大圖的left和top

-----------------------------------萬能分割線----------------------------------------

簡單來說,放大后的圖片本來就存在只不過設置為隱藏,鼠標移入的后再顯示,然后獲取鼠標移動的位置賦值給大圖的相對定位值,這就是放大鏡的實現原理

tab切換就更簡單了

需要用到vue的v-show來實現在data中創建一個數組將圖片地址存在數組中,通過v-for將圖片地址遍歷到img標簽中在data中創建一個nowindex,將圖片索引賦值給nowindex通過v-show=“nowindex == index“來控制圖片顯示隱藏

下面就是代碼

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>Document</title> <script src='http://m.lshqa.cn/bcjs/vue/vue.js'></script> <style>body { margin: 0; padding: 0; background-color: #ccc;}#app { height: 245px; width: 556px; /* border: 3px solid; */ position: relative; margin: 200px auto; box-sizing: border-box;}.content { height: 150px; width: 250px; border-bottom: 5px solid white;}.imgs { height: 90px; width: 248px; box-sizing: border-box; display: flex; justify-content: space-between;}.imger { height: 99%; width: 49.6%;}.content>img { height: 100%; width: 100%;}.active { box-shadow: 0px 8px 8px black; opacity: 0.7;}.fdj { display: none;}.block { height: 240px; width: 300px; position: absolute; top: 0px; right: -10px; overflow: hidden; z-index: 100; border-radius: 8px;}.block>img { height: 600%; width: 600%; position: relative;} </style></head><body> <div id='app'><div @mouseover='over' @mouseout='out' @mousemove=’move($event)’> <img :src=item v-for='(item,index) in url' v-show=’index == nowindex’></div><div class='imgs'> <img :src=item v-for='(item,index) in url' @click='change(index)' :class='{active:index == nowindex}'></div><div :class='blocks'> <img :src=item v-for='(item,index) in url' v-show=’index == nowindex’ :style=’positions’></div> </div> <script>var vm = new Vue({ el: '#app', data: {//圖片地址url: [’./img/11.jpg’, './img/9.jpg'],nowindex: 0,blocks: 'fdj',//相對定位的值positions: { top: 0, left: 0} }, methods: {change(index) { //圖片的切換 this.nowindex = index;},over() { //通過更改類名實現顯示隱藏 this.blocks = 'block'},out() { this.blocks = 'fdj'},move(e) { //將鼠標移動位置賦值給圖片相對定位的值,實現鼠標移動圖片移動 this.positions.top = (e.offsetY * -7.9) + 'px'; this.positions.left = (e.offsetX * -6) + 'px';} },}) </script></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 国产精品自拍合集 | 日韩福利视频精品专区 | 日韩三级视频在线 | 国产在亚洲线视频观看 | 欧美人成人亚洲专区中文字幕 | 狠狠色丁香久久婷婷综合_中 | 丁香婷婷影音先锋5566 | 亚洲欧美在线综合一区二区三区 | 国产亚洲欧洲一区二区三区 | 亚洲va久久久噜噜噜久久狠狠 | 久久院线 | 99久久国产免费福利 | 国内免费视频成人精品 | 成人爱爱网站在线观看 | 日本免费一区二区三区视频 | 欧美二级在线观看免费 | a毛片全部播放免费视频完整18 | 日韩在线国产 | 久久久久久青草大香综合精品 | 欧美精品另类hdvideo | 国产成人禁片免费观看 | 怡红院在线观看在线视频 | a级男女性高爱潮高清试 | 中文字幕有码在线观看 | 午夜毛片不卡高清免费 | 日本加勒比在线视频 | 国产专区一va亚洲v天堂 | 一级绝黄 | 欧美毛片在线 | 国产欧美日韩综合二区三区 | 91成人免费观看 | 国产毛片久久久久久国产毛片 | 免费看又黄又爽又猛的网站 | 国产精品成人免费视频不卡 | 日韩高清一区二区 | 欧美成人极品怡红院tv | 黄色毛片播放 | 一级特色大黄美女播放网站 | 欧美成人精品福利在线视频 | 各种偷拍盗摄视频在线观看 | 91热在线观看精品 |