小编Var*_*rin的帖子

是否有可能jQuery slideDown()函数应用display:flex属性而不是display:block?

我有这个:

function searchOpen() {
    $('.nav__item__account').addClass('nav__item__account--open');
    $('.nav__item__account-dropdown').slideDown(250);
    $('.nav__item__account-dropdown').addClass('nav__item__account-dropdown--open');
    $('.nav__item__account-dropdown input').focus();
}

function searchClose() {
    $('.nav__item__account').removeClass('nav__item__account--open');
    $('.nav__item__account-dropdown').slideUp(250); 
}

function searchDropdown() {
    if ($('.nav__item__account-dropdown').is(":visible")) {
        searchClose();
    } else {
        searchOpen();
    }
}
Run Code Online (Sandbox Code Playgroud)

CSS for nav__item__account-dropdown--open:

.nav__item__account-dropdown--open {
    display: flex !important;
    justify-content: center;
}
Run Code Online (Sandbox Code Playgroud)

虽然这种解决方法有效,但display: flex在滑动完成之前会将其删除,从而导致一些不需要的视觉效果.

有没有办法让slideUp()slideDown()应用display: flex,而不是display: block

css jquery

12
推荐指数
3
解决办法
9586
查看次数

如何选择最后一行文字的第一个单词?(<h1> - <h6>,<p>元素)

我需要在我正在构建的网站上的每个h1-h6元素下添加一条水平线.我目前正在添加一个after元素:

h1, h2, h3, h4, h5, h6 {
  text-transform: uppercase;
  color: #000;
  margin-top: 0;
  margin-bottom: 2rem;
  font-weight: 800;
  color: #333;
  display: inline-block;
  position: relative;
  text-rendering: optimizeLegibility;
  font-family: $altfont;
  position: relative;
  &:after {
    content: '';
    position: absolute;
    bottom:0;
    left:0;
    width: 60px;
    height: 4px;
    background-color: $yellow;
  }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个小的jQuery函数,以确保after元素总是低于元素20px:

$(function () {
    $('h1, h2, h3, h4, h5, h6').each(function () {

            x = parseInt($(this).css('font-size'));
            $(this).css('line-height', (x + 20) + 'px');

    });
});
Run Code Online (Sandbox Code Playgroud)

如果h1左侧有文本对齐,则此方法有效 - 当文本换行为2行或更多行时,after元素将显示在最后一行的第一个单词下.

问题是,如果文本居中对齐或右对齐,则after元素将显示在h1元素下,但不会显示在最后一行的第一个单词下.这是可以用JS/JQuery完成的吗?

这是一张发生了什么的照片.在第二个例子中,我希望黄色线显示在"Slice"一词下面.

在此输入图像描述

javascript css jquery

5
推荐指数
1
解决办法
483
查看次数

带有边框半径和溢出隐藏的元素无法正确剪切内容:1px 问题

我正在玩按钮并遇到了这个问题。当按钮有圆角并且里面有一个 before 伪元素来模拟背景(用于过渡)时,我遇到了 1px 问题。before 伪元素没有正确裁剪,您几乎看不到按钮边框和填充颜色之间的某种空间。查看示例:

您会看到在圆形按钮上,边框和元素填充之间有一条细线/空间。

关于如何在保持结构不变的同时消除它的任何线索?

编辑 1. 我知道我可以使用背景代替,但在这种情况下我不能这样做。背景必须通过伪元素完成。

编辑 2. 在 Win 10、Chrome 和 Firefox 上可以看到问题。Firefox 让它更显眼。最新版本:Chrome 60.0.3112.78、Firefox 54.0.1

编辑 3. 编辑代码以显示为什么我不能使用背景属性。

a {
  color: black
}

.anibtn {
  display: inline-block;
  overflow: hidden;
  padding: 8px 20px;
  margin: 0 3px 6px 3px;
  text-align: center;
  border: solid 10px black;
  text-decoration: none;
  color: $btncolor;
  white-space: nowrap;
}

.anibtn-round {
  display: inline-block;
  overflow: hidden;
  padding: 8px 20px;
  margin: 0 3px 6px 3px;
  text-align: center;
  border: solid 10px black;
  text-decoration: none;
  color: …
Run Code Online (Sandbox Code Playgroud)

html css css-transitions

5
推荐指数
1
解决办法
1162
查看次数

Dojo:所有xhr / ajax调用似乎都是同步的,并阻止了其他调用

我正在研究继承的CRM。长话短说-有一个按钮可以调用php脚本,该脚本应在后台运行,我们不需要等待响应。

request(idata+'transferInTimeExec.php',{
    sync: false,
    preventCache:true,
    method:'GET'
});
Run Code Online (Sandbox Code Playgroud)

现在,transferInTimeExec.php运行需要一个小时,这是一个非常复杂的脚本,它处理招聘公司的每周时间表,对其进行处理,执行大量数据库操作等。

使用Chrome。每当我按下按钮运行它时,它将阻止所有xhr调用,直到完成为止。CRM处于“ ajax繁重”状态,并且在脚本运行时,用户无法执行任何操作,如果他们导航到另一个子页面,则直到我们开始的过程完成之前,xhr请求都不会得到解决。即使当我打开一个新的浏览器选项卡并尝试执行某些操作时,它也不会执行此操作。如果在脚本运行时在另一个浏览器(Firefox)中打开CRM,则可以使用CRM。

在“网络”选项卡中-第一个未决,您可以看到所有对不同Ajax呼叫等待的后续调用(都具有sync:false)

在此处输入图片说明

我什sleep(30)至用PHP函数替换了整个逻辑,以使其在返回任何内容之前30秒钟什么都不做-同样的问题。

onClick在按钮HTML标记内的普通javascript中尝试了XHR ,而不是Dojo方法-同样的问题。

我对整个项目进行了残酷的搜索/替换,替换sync:truesync:false-没有任何更改。

我的想法已经用完了,也许这里有人可以帮忙解决这个问题?是否有用于同步/异步的全局开关?如果不是ajax问题,那还会是什么?

javascript php ajax dojo

5
推荐指数
1
解决办法
69
查看次数

标签 统计

css ×3

javascript ×2

jquery ×2

ajax ×1

css-transitions ×1

dojo ×1

html ×1

php ×1