美文网首页
Vue 鼠标移入移出效果 控制显隐

Vue 鼠标移入移出效果 控制显隐

作者: MercuryWang | 来源:发表于2019-02-26 17:32 被阅读0次

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    需求是:鼠标移到 A 元素,显示 B 元素;且鼠标移入 B 元素,可以滑动滚轮查看内容。当鼠标移除后,再次移入查看 B 的内容,滚轮恢复到顶部。

    效果展示:http://mercwang.gitee.io/ziyu

    样式:

    <style>
            #root{
                width: 1000px;
                margin: 100px auto;
            }
            .element-a{
                width: 100px;
                height: 25px;
                font-size: 20px;
                color: darkblue;
            }
            .element-a:hover{
                cursor: pointer;
            }
            .elementB-wrap{
                width: 50rem;
                height: 8rem;
                overflow-x: hidden;
            }
            .elementB {
                padding: 0.75rem;
                width: 50rem;
                height: 8rem;
                overflow-y: scroll;
                overflow-x: hidden;
                font-size: 1rem;
                color: rgb(73, 128, 136);
                position: absolute;
                border: rgb(193, 230, 234) 1px solid;
                background: rgb(210, 236, 240);
                border-radius: 10px;
            }
        </style>
    

    引入了 jQuery 和 Vue

    <script src="https://cdn.staticfile.org/jquery/2.0.0/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    

    准备好两个元素:

    <div id="root">
        <div class="element-a" @mouseover="elementBShow()" @mouseleave="elementBHidden()">
            <p>显示内容</p>
        </div>
    
        <div class="elementB-wrap">
            <div id="elementB" class="elementB" v-show="ifShowB" v-html="content"
                 @mouseover="elementBMouseOver" @mouseleave="elementBMouseLeave"></div>
        </div>
    </div>
    

    js:

    <script type="text/javascript">
        let vm = new Vue({
            el: '#root',
            data: {
          ifShowB: false,
          content: "<div>在Fetch<span> 中有四个基本概念,他们分别是 <strong>Headers</strong>、<strong>Request</strong> 、<strong>Response</strong> 和 <strong>Body</strong>。为了更好的理解" +
                    " </span><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API\" class=\"bi-link\">Fetch</a>," +
                    "我们需要对这些概念做一个简单的了解。</div>" +
                    "<div data-type=\"p\">在一个完整的 <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://developer.mozilla.org/zh-CN/docs/Web/HTTP\" class=\"bi-link\">HTTP</a> " +
                    "请求中,其实就已经包含了这四个概念。请求中有请求头和请求体,响应中有响应头和响应体。所以我们有必要了解这些概念。</div>" +
                    "<div>在Fetch<span> 中有四个基本概念,他们分别是 <strong>Headers</strong>、<strong>Request</strong> 、<strong>Response</strong> 和 <strong>Body</strong>。为了更好的理解\" +\n" +
            "\t\t\t\t\" </span><a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API\\\" class=\\\"bi-link\\\">Fetch</a>,\" +\n" +
            "\t\t\t\t\"我们需要对这些概念做一个简单的了解。</div>\" +\n" +
            "\t\t\t\t\"<div data-type=\\\"p\\\">在一个完整的 <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer nofollow\\\" href=\\\"https://developer.mozilla.org/zh-CN/docs/Web/HTTP\\\" class=\\\"bi-link\\\">HTTP</a> \" +\n" +
            "\t\t\t\t\"请求中,其实就已经包含了这四个概念。请求中有请求头和请求体,响应中有响应头和响应体。所以我们有必要了解这些概念。</div>",
          BFocused: false,
            },
            methods: {
          elementBShow() {
            this.ifShowB = true;
    
          },
    
          elementBHidden() {
            //清除滚动条距离顶部高度
            $('#elementB').scrollTop(0);
            if (!this.BFocused) {
              this.ifShowB = false;
            } else
              this.ifShowB = true;
          },
    
          //鼠标移入设置案件摘要为focus状态
          elementBMouseOver() {
            this.ifShowB = true;
            this.BFocused = true;
          },
    
          elementBMouseLeave() {
            //清除滚动条距离顶部高度
            $('#elementB').scrollTop(0);
            this.BFocused = false;
            this.ifShowB = false;
          }
            }
        })
    
    </script>
    
    showHidden.png

    相关文章

      网友评论

          本文标题:Vue 鼠标移入移出效果 控制显隐

          本文链接:https://www.haomeiwen.com/subject/isoayqtx.html