- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这里有一些代码,比如旋转木马。
问题是当我第一次按向右箭头时无法切换到第二张卡。我认为这是因为函数不知道 cardStack left 属性等于 -20px。但是当我将这段代码 var l = cardStack.left;
添加到一个函数中时,它工作正常。但据我所知,每次调用函数时都提及 document.
并不是一个好主意。我需要你的建议
var cardStack = document.getElementById('allCards');
var l = cardStack.left;
document.onkeydown = cardsShifting;
function cardsShifting(e) {
switch (e.keyCode) {
case 37:
shiftCard('left');
break;
case 39:
shiftCard('right');
break;
}
}
function shiftCard(direction) {
if (direction === 'right') {
l = l - 640;
if (l >= -5780) {
cardStack.style.left = l + 'px';
} else {
l = -20;
cardStack.style.left = l + 'px';
}
}
}
#allCards {
position: relative;
width: 6400px;
height: 400px;
left: -20px;
display: inline-block;
}
#currentCardWindow {
position: absolute;
width: 600px;
height: 420px;
top: 50%;
left: 50%;
margin-top: -200px;
margin-left: -300px;
overflow: hidden;
box-sizing: border-box;
}
.card {
position: relative;
width: 600px;
height: 400px;
float: left;
margin: 0 20px;
}
<div id="currentCardWindow">
<div id="allCards">
<div class="card">card 1</div>
<div class="card">card 2</div>
<div class="card">card 3</div>
<div class="card">card 4</div>
<div class="card">card 5</div>
<div class="card">card 6</div>
<div class="card">card 7</div>
<div class="card">card 8</div>
<div class="card">card 9</div>
<div class="card">card 10</div>
</div>
</div>
最佳答案
当您执行 cardStack.style.left
时,您实际上并不是在查看 CSS,而是在查看元素的样式属性。幸运的是,有一种方法可以查看 CSS!我们可以使用 getComputedStyle .
The
window.getComputedStyle()
method returns an object that reports the values of all CSS properties of an element after applying active stylesheets and resolving any basic computation those values may contain. Individual CSS property values are accessed through APIs provided by the object or by simply indexing with CSS property names.
有了它,您可以执行 window.getComputedStyle(cardStack)
来获取所有 CSS 样式,然后您可以将 getPropertyValue("left")
添加到查看 left
属性。这将返回 -20px
但我们想忽略 px 我们可以使用 parseInt
来做到这一点。
我已将所有内容放在这个片段中。
var cardStack = document.getElementById('allCards');
var l = parseInt(window.getComputedStyle(cardStack).getPropertyValue("left"));
document.onkeydown = cardsShifting;
function cardsShifting(e) {
switch (e.keyCode) {
case 37:
shiftCard('left');
break;
case 39:
shiftCard('right');
break;
}
}
function shiftCard(direction) {
if (direction === 'right') {
l = l - 640;
if (l >= -5780) {
cardStack.style.left = l + 'px';
} else {
l = -20;
cardStack.style.left = l + 'px';
}
}
}
#allCards {
position: relative;
width: 6400px;
height: 400px;
left: -20px;
display: inline-block;
}
#currentCardWindow {
position: absolute;
width: 600px;
height: 420px;
top: 50%;
left: 50%;
margin-top: -200px;
margin-left: -300px;
overflow: hidden;
box-sizing: border-box;
}
.card {
position: relative;
width: 600px;
height: 400px;
float: left;
margin: 0 20px;
}
<div id="currentCardWindow">
<div id="allCards">
<div class="card">card 1</div>
<div class="card">card 2</div>
<div class="card">card 3</div>
<div class="card">card 4</div>
<div class="card">card 5</div>
<div class="card">card 6</div>
<div class="card">card 7</div>
<div class="card">card 8</div>
<div class="card">card 9</div>
<div class="card">card 10</div>
</div>
</div>
希望对您有所帮助。
关于javascript - 如何提前获取元素属性(不是在我调用函数时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417811/
如果这有点含糊,我提前道歉,但我什至缺乏如何处理这个问题的基本想法 - 甚至不知道是否有合适的术语可供搜索。 我正在尝试编写一个按时间顺序排列的动画事件的表格驱动系统,其中描述性评论也从表格中提取出来
我是一个老狗,30 年前就用过 BASIC >。我以前在 python 中使用 for 循环时遇到过这种情况,但我选择这个例子是因为我担心循环: 我想解析一个长字符串,其中包含用逗号分隔的双引号中的单
我需要获取从当天算起的 5 个工作日的数组。 今天是:06/04/2018 我需要的输出是: { 0: 06/01/2018, //fri. 1: 05/31/2018, //th
我习惯于使用时间戳,我现在将尝试使用正常日期 2011-02-02 12:00:00 格式 我有这个: SELECT * FROM users_calenders WHERE date ? 我想选择日
我在我的本地仓库 (test-branch) 中创建了一个测试分支,并将其推送到 Github。 如果我转到我的 Github 帐户并选择这个 test-branch 它会显示信息: This bra
我正在尝试设置 JSON 对象的结束日期。结束日期等于开始日期后 30 天。有时这会返回正确的日期,有时则不会。 这是GetDateSchedulerFormatted函数 GetDateSchedu
我有一个执行器服务,它定期执行一堆任务。它们在启动时初始化并经常运行,到目前为止一切顺利。 我现在想添加功能来根据事件快速启动这些任务的执行。 我找到了decorateTask方法,它允许我存储我安排
我需要比当前日期提前 3 周的日期。并将所有日期添加到数组中。我怎样才能得到这个? let date = NSDate() let calendar = NSCalendar(cal
我正在使用以下代码设置日期对象: NSDate *date = [NSDate date]; NSCalendar *gregorian = [[NSCalendar alloc] i
我正在将字符串“Jun 11, 2012 9:30 PM”转换为 NSDate,并且由于某种原因我一直提前 4 小时。有趣的是,我正在使用相同的字符串在详细 View 中提供 UIDatePicker
我的理解是 Xamarin 的提前 (AOT) 编译器将 Xamarin.iOS 应用程序直接编译为 native ARM 汇编代码 (How Xamarin works) . 然而,我不明白的是为什
Angular 2 带有称为提前 (AoT) 的新功能。但是看了一番,还是不能真正理解。它是如何工作的?它将如何带来更好的性能?它与 JIT 有何不同? 谢谢。 最佳答案 Angular 在模块、指令
我看到了一些关于如何纠正这个问题的答案。我有一个 DateTime 类型的对象。我已分配该对象,如下所示。 obj.TimeStamp = DateTime.UtcNow; 我似乎找不到正确的组合或代
我是 Fortran 新手,我不明白这一行: write(*,'(a35)', advance='no') 在: program democonvertion implicit none
我一直在寻找如何做一些像 facebook 新闻提要这样的“高级”列表,但我认为我没有使用正确的关键字来搜索如何做到这一点。我对 android 环境还是很陌生。 这就是我要实现的目标: 我怎样才能得
我有一个包含 2 列的 pandas Dataframe。其中一个是日期格式的索引,另一个是比率 R(0 到 1 之间的数字)。如何向 pandas Dataframe 添加另一列,其中包含一天前一周
我有 2 个媒体查询大小 - only screen and (min-width: 980px)and (max-width: 1499px)"; only screen and (min-widt
我发现了这个: Is AOT (ahead of time) compilation available (or planned) in mono for android? 但是这个问题很老了。 在单
在我看来,当我调用 JTree.expandPath( path ) 默认情况下,它的所有父级也会展开。但我真正想做的是,设置特定的隐形 child 提前展开。这样当一个节点展开时,它的完整子树就会弹
我的时差显示不正确的输出,我正在尝试计算 startTime 和 endTime 之间的时差。 Date time1, time2; long difference; Simp
我是一名优秀的程序员,十分优秀!