最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現(xiàn)tab切換的放大鏡效果

 更新時間:2021年08月18日 12:08:45   作者:前端挖掘機  
這篇文章主要為大家詳細介紹了vue實現(xiàn)tab切換的放大鏡效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

廢話不多說先看效果圖

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

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

3.不用拘泥于樣式,關注實現(xiàn)原理即可

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

實現(xiàn)原理

第一肯定需要vue.js

第二需要兩張圖片

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

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

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

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

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

tab切換就更簡單了

需要用到vue的v-show來實現(xiàn)
在data中創(chuàng)建一個數(shù)組將圖片地址存在數(shù)組中,通過v-for將圖片地址遍歷到img標簽中
在data中創(chuàng)建一個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="./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 class="content" @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" class="imger" @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() {
                    //通過更改類名實現(xiàn)顯示隱藏
                    this.blocks = "block"
                },

                out() {
                    this.blocks = "fdj"
                },
                move(e) {
                    //將鼠標移動位置賦值給圖片相對定位的值,實現(xiàn)鼠標移動圖片移動
                    this.positions.top = (e.offsetY * -7.9) + "px";
                    this.positions.left = (e.offsetX * -6) + "px";
                }
            },

        })
    </script>
</body>

</html>

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

相關文章

  • Vue頁面中實現(xiàn)平滑滾動功能

    Vue頁面中實現(xiàn)平滑滾動功能

    這是一個實現(xiàn)平滑滾動的函數(shù),可以讓頁面在滾動到指定位置時產生緩動效果,本文給大家介紹了如何在在Vue頁面中實現(xiàn)平滑滾動功能,<BR>,文中詳細的代碼講解供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • vue3+vite 動態(tài)引用靜態(tài)資源及動態(tài)引入assets文件夾圖片的多種方式

    vue3+vite 動態(tài)引用靜態(tài)資源及動態(tài)引入assets文件夾圖片的多種方式

    通過require動態(tài)引入, 發(fā)現(xiàn)報錯:require is not defind,這是因為 require 是屬于 Webpack 的方法,本文給大家介紹vue3+vite 動態(tài)引用靜態(tài)資源及動態(tài)引入assets文件夾圖片的多種方式,感興趣的朋友一起看看吧
    2023-10-10
  • VUE解決 v-html不能觸發(fā)點擊事件的問題

    VUE解決 v-html不能觸發(fā)點擊事件的問題

    今天小編就為大家分享一篇VUE解決 v-html不能觸發(fā)點擊事件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 最簡單的vue消息提示全局組件的方法

    最簡單的vue消息提示全局組件的方法

    這篇文章主要介紹了最簡單的vue消息提示全局組件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • vue better-scroll插件使用詳解

    vue better-scroll插件使用詳解

    本篇文章主要介紹了vue better-scroll插件使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Vue框架中如何調用模擬數(shù)據(jù)你知道嗎

    Vue框架中如何調用模擬數(shù)據(jù)你知道嗎

    這篇文章主要為大家詳細介紹了Vue框架中如何調用模擬數(shù)據(jù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Vue2父子組件傳值舉例詳解

    Vue2父子組件傳值舉例詳解

    這篇文章主要給大家介紹了關于Vue2父子組件傳值的相關資料,Vue 2.0 中父子組件之間的傳值可以通過屬性(prop)和事件(event)實現(xiàn),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • Vue常用實例方法示例梳理分析

    Vue常用實例方法示例梳理分析

    在了解vue的常用的實例方法之前,我們應該先要了解其常用的實例屬性,你能了解到的vue實例屬性有哪些呢?小編在這里就列舉了幾個常用的vue實例的屬性。大家可以一起參考學習一下
    2022-08-08
  • Vue3?echarts組件化及使用hook進行resize方式

    Vue3?echarts組件化及使用hook進行resize方式

    這篇文章主要介紹了Vue3?echarts組件化及使用hook進行resize方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 使用vue實現(xiàn)pdf預覽功能的方法

    使用vue實現(xiàn)pdf預覽功能的方法

    許多朋友想要材料上傳之后點擊預覽實現(xiàn)在瀏覽器上預覽的效果,所以本文將給大家介紹如何使用vue實現(xiàn)pdf預覽功能,文中有實現(xiàn)代碼,有需要的朋友可以參考閱讀下
    2023-08-08

最新評論

株洲市| 阿拉善盟| 湘潭县| 萍乡市| 盐城市| 泰顺县| 漳平市| 集安市| 聂荣县| 察雅县| 湘潭市| 清河县| 兴仁县| 苏尼特左旗| 宜兰市| 青川县| 正蓝旗| 云阳县| 临泉县| 格尔木市| 新丰县| 荃湾区| 黑水县| 东乌| 大庆市| 石台县| 北碚区| 万荣县| 洮南市| 穆棱市| 珲春市| 奉节县| 株洲市| 柘荣县| 濮阳市| 延长县| 嘉义县| 措勤县| 康乐县| 鄂伦春自治旗| 云和县|