小编Aym*_*rsy的帖子

鼠标离开目标时背景过渡闪烁

我正在尝试使用过渡为背景属性设置动画。

当我将鼠标悬停在目标上时,它工作得很顺利,但是当我离开目标时,它就像闪光一样!

进出不是应该很顺利吗?

看起来这个闪烁问题背后的混合混合模式或者其他原因,所以我需要解释。

a {
    position:relative;
    display:block;
}

img {
    position:relative;
    width: 172px;
    border-radius:15px;
    float:left;
    margin-bottom:10px;
    filter:grayscale(100%);
}
    
a::after {
    position: absolute;
    left: 0;
    top: 0;
    width: 172px;
    height: 242px;
    background: #2d293e;
    content: " ";
    display: block;
    border-radius: 14px;
    mix-blend-mode: screen;
    transition: opacity 300ms ease-in-out,background 400ms ease-in-out;
}

a:hover::after {
    background:#FF0101;
    opacity:0.1;
}
Run Code Online (Sandbox Code Playgroud)
<a>
    <img src="https://images.wikidi.net/crop/172x242/http://f2.fsm.wikidi.com/af/ad/yb/e0d20df22741de9c3480e691bc7a3a41efceddcd.jpg" alt=""/>
</a>
Run Code Online (Sandbox Code Playgroud)

css css-transitions

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

如何在javascript中实现deque数据结构?

我正在用 javascript 学习数据结构

我现在的重点是如何实现双端队列?

编辑:从下面的评论中,我得到了关于如何实现deque based array. 有没有指导如何deque based object使用 class来实现?

在此处输入图片说明

我明白了一些我需要的要点:

  • 添加前()
  • 移除前线()
  • 窥视前()

  • 添加返回()
  • 删除返回()
  • 偷看()

但我对以下几点感到困惑:

  • 我需要多少个指针?至少我从队列中知道我需要两个(头尾)指针但不确定我是否需要更多的双端队列

  • 在这种情况下,javascript 中哪种数据类型方便作为基础?我在 youtube 上看到一些导师在谈论循环数组,例如我在 JS 中不知道的。

编辑2:

我正在关注一本名为:学习 javascript 数据结构和算法第 3 版的书

在本书的第5章中,作者开始基于对象和一些变量来实现Deque

但我不明白他是怎么做到的,因为代码是加密的,但我仍然可以访问他的文件并测试他的方法github 存储库

我可以说@trincot 回答非常接近书籍作者的方法

但是当我比较结果时,我得到了这个 [1 = author - 2 = @trincot] : 在此处输入图片说明

根据第6章中关于链表的书籍索引,所以我没想到他的解决方案会基于他之前没有提到的东西

如果我错过任何一点,我将不胜感激告诉我......谢谢

javascript deque data-structures

2
推荐指数
2
解决办法
4324
查看次数

array.splice 具有负值索引的意外行为

我注意到MDN在start Parameter的描述中提到:

  • 开始更改数组的索引(原点为 0)
  • 如果为负,将从数组末尾开始那么多元素 (原点为-1)

这个描述对于我删除元素非常有用:

删除第一个元素:

let foo = ["a", "b", "c"];
foo.splice(0,1) // "a" removed
console.log(foo);//["b", "c"]
Run Code Online (Sandbox Code Playgroud)

删除最后一个元素:

let foo = ["a", "b", "c"];
foo.splice(-1,1) // "c" removed
console.log(foo);//["a", "b"]
Run Code Online (Sandbox Code Playgroud)

现在让我们尝试添加元素

在第 1 处添加元素 :

let foo = ["a", "b", "c"];
foo.splice(0,0,"x") // "x" added to 1st
console.log(foo);//["x", "a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)

将元素添加到最后

let foo = ["a", "b", "c"];
foo.splice(-1,0,"x") 
// I expected to added "x" as …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

为什么此语法不会在 javascript 中产生错误 {age:15}toString()

在控制台中尝试这个语法

 {age:15}toString()  
 '[object Undefined]' // this is the return
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,它看起来在语法上是错误的,所以我不确定解释器如何解析它?

该物体{age:15}看起来完全被忽略了?真的吗 ?

如果不忽略剂量,它意味着它一创建就变成垃圾我只是在想但不确定

javascript

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