首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery在悬停时加载MVC视图会导致闪烁问题

Jquery在悬停时加载MVC视图会导致闪烁问题
EN

Stack Overflow用户
提问于 2021-08-12 14:28:35
回答 1查看 39关注 0票数 1

我希望每个div在鼠标悬停时展开并更改其内容,并在鼠标输出时返回到以前的状态。我这样做的方式是使用MVC局部视图:

(Subpages.cshtml)

代码语言:javascript
复制
<div id="subpages" class="mx-auto d-flex justify-content-evenly">
    <div class="subpage" id="subpage1">
        @Html.Partial("Subpage1Narrow")
    </div>
    <div class="subpage" id="subpage2">
        @Html.Partial("Subpage2Narrow")
    </div>
    <div class="subpage" id="subpage3">
        @Html.Partial("Subpage3Narrow")
    </div>
</div>

(Subpage1Narrow.cshtml)

代码语言:javascript
复制
<div class="d-flex align-items-start flex-column" style="width: 456px;">
    <p class="subpage__title mb-4 mx-4"><b>Subpage<br>1</b></p>
    <br>
    <p class="mx-4">...</p>
    <button type="button" class="btn btn-danger mt-auto mb-5 mx-4" id="subpage1__button" style="font-family: var(--alt-font)"><b>Learn more <span class="bi bi-arrow-right"></span></b></button>
</div>

(Subpage1Wide.cshtml)

代码语言:javascript
复制
<div class="d-flex flex-column align-items-center mx-auto" style="width: 1368px; height: 681px;">
    <p class="text-center subpage__title mb-4 mx-4 mt-auto"><b>Subpage 1</b></p>
    <br>
    <b class="text-center mb-5 subpage__text--extended">...</b>
    <div class="row w-50 text-center mb-3">
        <div class="col">
            <img src="~/img/ICON1.svg" width="57" height="49">
        </div>
        <div class="col">
            <img src="~/img/ICON2.svg" width="66" height="59">
        </div>
        <div class="col">
            <img src="~/img/ICON3.svg" width="37" height="56">
        </div>
    </div>
    <div class="row w-50 text-center mb-5">
        <div class="col">
            <b class="d-block subpage__subtitle--extended">1</b>
        </div>
        <div class="col">
            <b class="d-block subpage__subtitle--extended">2</b>
        </div>
        <div class="col">
            <b class="d-block subpage__subtitle--extended">3</b>
        </div>
    </div>
    <button type="button" class="btn btn-danger mt-4 mb-5" id="subpage1__button" style="font-family: var(--alt-font)"><b>Learn more <span class="bi bi-arrow-right"></span></b></button>
</div>

(site.css奇怪的黑客攻击,但我对其他方法有问题)

代码语言:javascript
复制
#subpages:hover > .subpage:not(:hover) {
    width: 0;
}

(HomeController.cs)

代码语言:javascript
复制
public IActionResult GetView(string viewName)
{
    return PartialView(viewName);
}

(site.js)

代码语言:javascript
复制
function capitalize(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
}

$(document).ready(function () {
    $(".subpage").mouseover(function () {
         $(this).load("/Home/GetView", {viewName: `${capitalize($(this).attr('id'))}Wide`})
    });

    $(".subpage").mouseout(function () {
         $(this).load("/Home/GetView", {viewName: `${capitalize($(this).attr('id'))}Narrow`})
    });
});

然而,这会导致非常不可靠的行为。每当我移动鼠标时,div的内容都会闪烁,有时在鼠标移出时不会变回原来的状态。这是我第一次将C#和前端混合在一起,所以我确定我在这里犯了一些错误,但我就是找不到解决这个问题的方法。有吗?或者我应该以某种方式彻底改变我的方法?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-08-12 15:59:14

添加mousemove怎么样?

代码语言:javascript
复制
$(".subpage").mousemove(function(){
  $(this).load("/Home/GetView", {viewName: `${capitalize($(this).attr('id'))}Wide`})
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68759332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档