相关疑难解决方法(0)

在Angular 4中单击时滚动到元素

我希望能够在按下按钮时滚动到目标.我在想这样的事情.

<button (click)="scroll(#target)">Button</button>
Run Code Online (Sandbox Code Playgroud)

在我的component.ts中有一个类似的方法.

scroll(element) {
    window.scrollTo(element.yPosition)
}
Run Code Online (Sandbox Code Playgroud)

我知道上面的代码无效,只是为了表明我的想法.我刚刚开始学习Angular 4而没有以前的Angular经验.我一直在寻找类似的东西,但所有的例子都在AngularJs中,与Angular 4不同

html javascript typescript angular

74
推荐指数
10
解决办法
12万
查看次数

如何使javascript scrollIntoView顺利?

在一个反应​​应用程序中,我有一个方法被调用以将特定节点带入视图,如下所示.

scrollToQuestionNode(id) {
        const element = document.getElementById(id);
        element.scrollIntoView(false);
}
Run Code Online (Sandbox Code Playgroud)

滚动很好,但滚动动作有点不稳定.我怎样才能让它顺利?我没有看到任何我可以为scrollIntoView提供的选项.

javascript css scroll reactjs

32
推荐指数
3
解决办法
4万
查看次数

scrollintoview 在 chrome 版本&gt;=81 中不起作用。行为平滑没有发生

if (document.querySelector(target)) {
  event.preventDefault();
  document.querySelector(target).scrollIntoView({ behavior: 'smooth' });
}

Run Code Online (Sandbox Code Playgroud)

scrollIntoView即使event.preventDefault用于避免默认锚标记行为,上述行为也无法正常工作。功能在 IE 和 firefox 中有效,但在 chrome 版本中无效>=81

var dropdownElement = document.getElementById('dropdown');

dropdownElement.addEventListener('change', function(ev) {
  var containerChoosed = document.getElementById('container_' + this.value);
  containerChoosed.scrollIntoView({
    block: "center",
    behaviour: "smooth"
  });
});
Run Code Online (Sandbox Code Playgroud)
div {
  border: 1px solid;
  height: 400px;
  margin: 16px;
}

#container_1 {
  background-color: yellow;
}

#container_2 {
  background-color: blue;
}

#container_3 {
  background-color: green;
}

#container_4 {
  background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>

	<select id="dropdown">
	  <option value="1">Div …
Run Code Online (Sandbox Code Playgroud)

javascript smooth-scrolling

5
推荐指数
3
解决办法
2232
查看次数

如何在浏览器中一致滚动到DIV的子元素?

我在这里有一个测试用例:

http://www.libsys.und.edu/dev/scroll-test.html

它有一个包含很长链接列表的DIV.我想将DIV滚动到给定的链接.在我的测试用例中,通过按下JSTOR按钮完成,将按钮推进到JSTOR链接.在实际生产样本中,将基于键盘输入选择链接.因此,例如,按"B"将其推进到第一个"B"链接,即生物学文摘.

我的测试用例中的预期结果是:我单击JSTOR,它滚动,因此JSTOR位于DIV的顶部.这可能涉及向下或向上滚动,具体取决于DIV已经滚动了多远.

实际结果取决于DIV是否已经滚动.

如果DIV根本没有滚动,那么它在所有浏览器中都能正常工作.

如果DIV已经滚动(甚至一点点),结果如下:

  1. Firefox向下滚动并将JSTOR放在DIV 的底部.
  2. Chrome向下滚动并将JSTOR放在DIV 的底部.(但见下文)
  3. Safari向下滚动并将JSTOR放在DIV 的底部.(但见下文)
  4. Chrome向下滚动并将JSTOR放在DIV 的底部.
  5. Opera向下滚动并将JSTOR放在DIV 的顶部.

此外,在某些我无法令人满意地识别的情况下,Chrome和Safari都会向下滚动并将JSTOR链接垂直居中放置在DIV 的中间.

Opera是唯一能够始终如一地实现我期望的浏览器.Firefox和IE以不同的方式做到这一点,但至少以不同的方式做到这一点,并且他们的行为相互匹配; 我不知道Chrome和Safari的行为是什么.

那么 - 是否有某种方式可以滚动DIV,使得目标链接总是在浏览器中相对于其父级位于相同的位置?我甚至不关心它是否在顶部,真的,尽管这对我来说最有意义.只要我能以一致的方式让它以同样的方式工作,我会很高兴.

对于长期记录,这是我的CSS和JS; HTML只是一个很长的DIV内部链接列表,ID为"box".我试图制作一个JS Fiddle,但它死在我身上 - 我认为它不喜欢HTML源代码的长度.

CSS:

#box {
    width: 300px;
    height: 200px;
    overflow: auto;
    position: relative;
}

#box ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
Run Code Online (Sandbox Code Playgroud)

JS:

// I'm running scrollTop() and position().top through Math.floor() because
// Firefox likes …
Run Code Online (Sandbox Code Playgroud)

javascript jquery scroll

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

jQuery的animate()scrollTop属性在iPad Safari上不起作用

我有一个div,如果它变长,它将显示一个滚动条。它是CSS

top: 35px;
overflow: hidden;
position: absolute;
width: 100%;
height: 100%;
bottom: 0px;
overflow-x: hidden;
display: block;
Run Code Online (Sandbox Code Playgroud)

不知何故,当我使用jQuery(v1.7.1)滚动此div时,它不适用于iPad(iOS 8.3)Safari,但在所有桌面浏览器上均能完美运行。这是代码

$('#myDivId').animate({ scrollTop: 100 });
Run Code Online (Sandbox Code Playgroud)

这个普通的JS代码在iPad Safari上都不起作用,但是在桌面浏览器上可以正常工作

var myDiv = document.getElementById('myDivId');
myDiv.scrollTop = 100;
Run Code Online (Sandbox Code Playgroud)

有人对为什么有任何想法吗?

css safari jquery scrolltop ios

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